nonebot-plugin-l4d2-server 1.0.0b1__tar.gz → 1.0.1__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.
- {nonebot_plugin_l4d2_server-1.0.0b1 → nonebot_plugin_l4d2_server-1.0.1}/PKG-INFO +4 -6
- {nonebot_plugin_l4d2_server-1.0.0b1 → nonebot_plugin_l4d2_server-1.0.1}/README.md +2 -3
- {nonebot_plugin_l4d2_server-1.0.0b1 → nonebot_plugin_l4d2_server-1.0.1}/nonebot_plugin_l4d2_server/__main__.py +89 -1
- {nonebot_plugin_l4d2_server-1.0.0b1 → nonebot_plugin_l4d2_server-1.0.1}/nonebot_plugin_l4d2_server/l4_help/__init__.py +1 -1
- {nonebot_plugin_l4d2_server-1.0.0b1 → nonebot_plugin_l4d2_server-1.0.1}/nonebot_plugin_l4d2_server/l4_help/icon//344/273/213/347/273/215.png +0 -0
- {nonebot_plugin_l4d2_server-1.0.0b1 → nonebot_plugin_l4d2_server-1.0.1}/nonebot_plugin_l4d2_server/l4_help/icon//344/273/273/345/212/241.png +0 -0
- {nonebot_plugin_l4d2_server-1.0.0b1 → nonebot_plugin_l4d2_server-1.0.1}/nonebot_plugin_l4d2_server/l4_help/icon//344/277/241/346/201/257.png +0 -0
- {nonebot_plugin_l4d2_server-1.0.0b1 → nonebot_plugin_l4d2_server-1.0.1}/nonebot_plugin_l4d2_server/l4_help/icon//345/205/254/345/221/212.png +0 -0
- {nonebot_plugin_l4d2_server-1.0.0b1 → nonebot_plugin_l4d2_server-1.0.1}/nonebot_plugin_l4d2_server/l4_help/icon//345/210/200/345/211/221.png +0 -0
- {nonebot_plugin_l4d2_server-1.0.0b1 → nonebot_plugin_l4d2_server-1.0.1}/nonebot_plugin_l4d2_server/l4_help/icon//345/210/207/346/215/242.png +0 -0
- {nonebot_plugin_l4d2_server-1.0.0b1 → nonebot_plugin_l4d2_server-1.0.1}/nonebot_plugin_l4d2_server/l4_help/icon//345/210/240/351/231/244.png +0 -0
- {nonebot_plugin_l4d2_server-1.0.0b1 → nonebot_plugin_l4d2_server-1.0.1}/nonebot_plugin_l4d2_server/l4_help/icon//345/210/267/346/226/260.png +0 -0
- {nonebot_plugin_l4d2_server-1.0.0b1 → nonebot_plugin_l4d2_server-1.0.1}/nonebot_plugin_l4d2_server/l4_help/icon//345/215/241/347/273/204.png +0 -0
- {nonebot_plugin_l4d2_server-1.0.0b1 → nonebot_plugin_l4d2_server-1.0.1}/nonebot_plugin_l4d2_server/l4_help/icon//345/223/252/351/207/214.png +0 -0
- {nonebot_plugin_l4d2_server-1.0.0b1 → nonebot_plugin_l4d2_server-1.0.1}/nonebot_plugin_l4d2_server/l4_help/icon//345/234/260/345/233/276.png +0 -0
- {nonebot_plugin_l4d2_server-1.0.0b1 → nonebot_plugin_l4d2_server-1.0.1}/nonebot_plugin_l4d2_server/l4_help/icon//345/257/274/345/205/245.png +0 -0
- {nonebot_plugin_l4d2_server-1.0.0b1 → nonebot_plugin_l4d2_server-1.0.1}/nonebot_plugin_l4d2_server/l4_help/icon//345/257/274/345/207/272.png +0 -0
- {nonebot_plugin_l4d2_server-1.0.0b1 → nonebot_plugin_l4d2_server-1.0.1}/nonebot_plugin_l4d2_server/l4_help/icon//345/275/261.png +0 -0
- {nonebot_plugin_l4d2_server-1.0.0b1 → nonebot_plugin_l4d2_server-1.0.1}/nonebot_plugin_l4d2_server/l4_help/icon//346/213/274/345/233/276.png +0 -0
- {nonebot_plugin_l4d2_server-1.0.0b1 → nonebot_plugin_l4d2_server-1.0.1}/nonebot_plugin_l4d2_server/l4_help/icon//346/216/242/347/264/242.png +0 -0
- {nonebot_plugin_l4d2_server-1.0.0b1 → nonebot_plugin_l4d2_server-1.0.1}/nonebot_plugin_l4d2_server/l4_help/icon//346/216/250/351/200/201.png +0 -0
- {nonebot_plugin_l4d2_server-1.0.0b1 → nonebot_plugin_l4d2_server-1.0.1}/nonebot_plugin_l4d2_server/l4_help/icon//346/224/266/351/233/206.png +0 -0
- {nonebot_plugin_l4d2_server-1.0.0b1 → nonebot_plugin_l4d2_server-1.0.1}/nonebot_plugin_l4d2_server/l4_help/icon//346/224/273/347/225/245.png +0 -0
- {nonebot_plugin_l4d2_server-1.0.0b1 → nonebot_plugin_l4d2_server-1.0.1}/nonebot_plugin_l4d2_server/l4_help/icon//346/233/264/346/226/260.png +0 -0
- {nonebot_plugin_l4d2_server-1.0.0b1 → nonebot_plugin_l4d2_server-1.0.1}/nonebot_plugin_l4d2_server/l4_help/icon//346/235/220/346/226/231.png +0 -0
- {nonebot_plugin_l4d2_server-1.0.0b1 → nonebot_plugin_l4d2_server-1.0.1}/nonebot_plugin_l4d2_server/l4_help/icon//346/237/245/350/257/242.png +0 -0
- {nonebot_plugin_l4d2_server-1.0.0b1 → nonebot_plugin_l4d2_server-1.0.1}/nonebot_plugin_l4d2_server/l4_help/icon//346/240/241/351/252/214.png +0 -0
- {nonebot_plugin_l4d2_server-1.0.0b1 → nonebot_plugin_l4d2_server-1.0.1}/nonebot_plugin_l4d2_server/l4_help/icon//346/257/217/346/234/210.png +0 -0
- {nonebot_plugin_l4d2_server-1.0.0b1 → nonebot_plugin_l4d2_server-1.0.1}/nonebot_plugin_l4d2_server/l4_help/icon//346/267/261/346/270/212.png +0 -0
- {nonebot_plugin_l4d2_server-1.0.0b1 → nonebot_plugin_l4d2_server-1.0.1}/nonebot_plugin_l4d2_server/l4_help/icon//346/267/273/345/212/240.png +0 -0
- {nonebot_plugin_l4d2_server-1.0.0b1 → nonebot_plugin_l4d2_server-1.0.1}/nonebot_plugin_l4d2_server/l4_help/icon//346/270/205/351/231/244.png +0 -0
- {nonebot_plugin_l4d2_server-1.0.0b1 → nonebot_plugin_l4d2_server-1.0.1}/nonebot_plugin_l4d2_server/l4_help/icon//347/212/266/346/200/201.png +0 -0
- {nonebot_plugin_l4d2_server-1.0.0b1 → nonebot_plugin_l4d2_server-1.0.1}/nonebot_plugin_l4d2_server/l4_help/icon//347/255/276/345/210/260.png +0 -0
- {nonebot_plugin_l4d2_server-1.0.0b1 → nonebot_plugin_l4d2_server-1.0.1}/nonebot_plugin_l4d2_server/l4_help/icon//347/273/221/345/256/232.png +0 -0
- {nonebot_plugin_l4d2_server-1.0.0b1 → nonebot_plugin_l4d2_server-1.0.1}/nonebot_plugin_l4d2_server/l4_help/icon//350/241/250.png +0 -0
- {nonebot_plugin_l4d2_server-1.0.0b1 → nonebot_plugin_l4d2_server-1.0.1}/nonebot_plugin_l4d2_server/l4_help/icon//350/241/250/346/203/205.png +0 -0
- {nonebot_plugin_l4d2_server-1.0.0b1 → nonebot_plugin_l4d2_server-1.0.1}/nonebot_plugin_l4d2_server/l4_help/icon//350/247/222/350/211/262.png +0 -0
- {nonebot_plugin_l4d2_server-1.0.0b1 → nonebot_plugin_l4d2_server-1.0.1}/nonebot_plugin_l4d2_server/l4_help/icon//350/256/260/345/275/225.png +0 -0
- {nonebot_plugin_l4d2_server-1.0.0b1 → nonebot_plugin_l4d2_server-1.0.1}/nonebot_plugin_l4d2_server/l4_help/icon//351/205/215/347/275/256.png +0 -0
- {nonebot_plugin_l4d2_server-1.0.0b1 → nonebot_plugin_l4d2_server-1.0.1}/nonebot_plugin_l4d2_server/l4_help/icon//351/207/215/345/220/257.png +0 -0
- {nonebot_plugin_l4d2_server-1.0.0b1 → nonebot_plugin_l4d2_server-1.0.1}/nonebot_plugin_l4d2_server/l4_help/texture2d/badge.png +0 -0
- {nonebot_plugin_l4d2_server-1.0.0b1 → nonebot_plugin_l4d2_server-1.0.1}/nonebot_plugin_l4d2_server/l4_help/texture2d/banner.png +0 -0
- {nonebot_plugin_l4d2_server-1.0.0b1 → nonebot_plugin_l4d2_server-1.0.1}/nonebot_plugin_l4d2_server/l4_help/texture2d/bg.jpg +0 -0
- {nonebot_plugin_l4d2_server-1.0.0b1 → nonebot_plugin_l4d2_server-1.0.1}/nonebot_plugin_l4d2_server/l4_help/texture2d/button.png +0 -0
- {nonebot_plugin_l4d2_server-1.0.0b1 → nonebot_plugin_l4d2_server-1.0.1}/nonebot_plugin_l4d2_server/l4_help/texture2d/icon.png +0 -0
- {nonebot_plugin_l4d2_server-1.0.0b1 → nonebot_plugin_l4d2_server-1.0.1}/nonebot_plugin_l4d2_server/l4_image/img/anne/back.png +0 -0
- {nonebot_plugin_l4d2_server-1.0.0b1 → nonebot_plugin_l4d2_server-1.0.1}/nonebot_plugin_l4d2_server/l4_image/img/anne/back1.jpg +0 -0
- {nonebot_plugin_l4d2_server-1.0.0b1 → nonebot_plugin_l4d2_server-1.0.1}/nonebot_plugin_l4d2_server/l4_image/img/head/head.png +0 -0
- {nonebot_plugin_l4d2_server-1.0.0b1 → nonebot_plugin_l4d2_server-1.0.1}/nonebot_plugin_l4d2_server/l4_image/img/header/logo.png +0 -0
- {nonebot_plugin_l4d2_server-1.0.0b1 → nonebot_plugin_l4d2_server-1.0.1}/nonebot_plugin_l4d2_server/l4_image/img/header/player1.jpg +0 -0
- {nonebot_plugin_l4d2_server-1.0.0b1 → nonebot_plugin_l4d2_server-1.0.1}/nonebot_plugin_l4d2_server/l4_image/img/template/Bocchi_The_Rock.png +0 -0
- {nonebot_plugin_l4d2_server-1.0.0b1 → nonebot_plugin_l4d2_server-1.0.1}/nonebot_plugin_l4d2_server/l4_image/img/template/Pixel.png +0 -0
- {nonebot_plugin_l4d2_server-1.0.0b1 → nonebot_plugin_l4d2_server-1.0.1}/nonebot_plugin_l4d2_server/l4_image/img/template/Rainbow.png +0 -0
- {nonebot_plugin_l4d2_server-1.0.0b1 → nonebot_plugin_l4d2_server-1.0.1}/nonebot_plugin_l4d2_server/l4_image/img/template/vac.png +0 -0
- {nonebot_plugin_l4d2_server-1.0.0b1 → nonebot_plugin_l4d2_server-1.0.1}/nonebot_plugin_l4d2_server/l4_image/img/template/vac_white.png +0 -0
- {nonebot_plugin_l4d2_server-1.0.0b1 → nonebot_plugin_l4d2_server-1.0.1}/nonebot_plugin_l4d2_server/l4_local/__init__.py +5 -1
- {nonebot_plugin_l4d2_server-1.0.0b1 → nonebot_plugin_l4d2_server-1.0.1}/nonebot_plugin_l4d2_server/l4_request/__init__.py +70 -4
- {nonebot_plugin_l4d2_server-1.0.0b1 → nonebot_plugin_l4d2_server-1.0.1}/nonebot_plugin_l4d2_server/l4_request/draw_msg.py +7 -2
- {nonebot_plugin_l4d2_server-1.0.0b1 → nonebot_plugin_l4d2_server-1.0.1}/nonebot_plugin_l4d2_server/utils/api/request.py +25 -1
- {nonebot_plugin_l4d2_server-1.0.0b1 → nonebot_plugin_l4d2_server-1.0.1}/pyproject.toml +1 -1
- {nonebot_plugin_l4d2_server-1.0.0b1 → nonebot_plugin_l4d2_server-1.0.1}/LICENSE +0 -0
- {nonebot_plugin_l4d2_server-1.0.0b1 → nonebot_plugin_l4d2_server-1.0.1}/nonebot_plugin_l4d2_server/__init__.py +0 -0
- {nonebot_plugin_l4d2_server-1.0.0b1 → nonebot_plugin_l4d2_server-1.0.1}/nonebot_plugin_l4d2_server/config.py +0 -0
- {nonebot_plugin_l4d2_server-1.0.0b1 → nonebot_plugin_l4d2_server-1.0.1}/nonebot_plugin_l4d2_server/data/font/loli.ttf +0 -0
- {nonebot_plugin_l4d2_server-1.0.0b1 → nonebot_plugin_l4d2_server-1.0.1}/nonebot_plugin_l4d2_server/l4_anne/__init__.py +0 -0
- {nonebot_plugin_l4d2_server-1.0.0b1 → nonebot_plugin_l4d2_server-1.0.1}/nonebot_plugin_l4d2_server/l4_anne/ranne.py +0 -0
- {nonebot_plugin_l4d2_server-1.0.0b1 → nonebot_plugin_l4d2_server-1.0.1}/nonebot_plugin_l4d2_server/l4_help/Help.json +0 -0
- {nonebot_plugin_l4d2_server-1.0.0b1 → nonebot_plugin_l4d2_server-1.0.1}/nonebot_plugin_l4d2_server/l4_help/draw.py +0 -0
- {nonebot_plugin_l4d2_server-1.0.0b1 → nonebot_plugin_l4d2_server-1.0.1}/nonebot_plugin_l4d2_server/l4_image/__init__.py +0 -0
- {nonebot_plugin_l4d2_server-1.0.0b1 → nonebot_plugin_l4d2_server-1.0.1}/nonebot_plugin_l4d2_server/l4_image/anne_pil.py +0 -0
- {nonebot_plugin_l4d2_server-1.0.0b1 → nonebot_plugin_l4d2_server-1.0.1}/nonebot_plugin_l4d2_server/l4_image/convert.py +0 -0
- {nonebot_plugin_l4d2_server-1.0.0b1 → nonebot_plugin_l4d2_server-1.0.1}/nonebot_plugin_l4d2_server/l4_image/download.py +0 -0
- {nonebot_plugin_l4d2_server-1.0.0b1 → nonebot_plugin_l4d2_server-1.0.1}/nonebot_plugin_l4d2_server/l4_image/html_img.py +0 -0
- {nonebot_plugin_l4d2_server-1.0.0b1 → nonebot_plugin_l4d2_server-1.0.1}/nonebot_plugin_l4d2_server/l4_image/image_tools.py +0 -0
- {nonebot_plugin_l4d2_server-1.0.0b1 → nonebot_plugin_l4d2_server-1.0.1}/nonebot_plugin_l4d2_server/l4_image/img/anne/anne.html +0 -0
- {nonebot_plugin_l4d2_server-1.0.0b1 → nonebot_plugin_l4d2_server-1.0.1}/nonebot_plugin_l4d2_server/l4_image/img/anne/group_ip.html +0 -0
- {nonebot_plugin_l4d2_server-1.0.0b1 → nonebot_plugin_l4d2_server-1.0.1}/nonebot_plugin_l4d2_server/l4_image/img/anne/ip.html +0 -0
- {nonebot_plugin_l4d2_server-1.0.0b1 → nonebot_plugin_l4d2_server-1.0.1}/nonebot_plugin_l4d2_server/l4_image/img/template/Bocchi_The_Rock.html +0 -0
- {nonebot_plugin_l4d2_server-1.0.0b1 → nonebot_plugin_l4d2_server-1.0.1}/nonebot_plugin_l4d2_server/l4_image/img/template/HYPixel11pxU-2.ttf +0 -0
- {nonebot_plugin_l4d2_server-1.0.0b1 → nonebot_plugin_l4d2_server-1.0.1}/nonebot_plugin_l4d2_server/l4_image/img/template/Pixel.html +0 -0
- {nonebot_plugin_l4d2_server-1.0.0b1 → nonebot_plugin_l4d2_server-1.0.1}/nonebot_plugin_l4d2_server/l4_image/img/template/Rainbow.html +0 -0
- {nonebot_plugin_l4d2_server-1.0.0b1 → nonebot_plugin_l4d2_server-1.0.1}/nonebot_plugin_l4d2_server/l4_image/img/template/Tutumianhuatang-Bold-2.ttf +0 -0
- {nonebot_plugin_l4d2_server-1.0.0b1 → nonebot_plugin_l4d2_server-1.0.1}/nonebot_plugin_l4d2_server/l4_image/img/template/bilibili.svg +0 -0
- {nonebot_plugin_l4d2_server-1.0.0b1 → nonebot_plugin_l4d2_server-1.0.1}/nonebot_plugin_l4d2_server/l4_image/img/template/fingerprint.svg +0 -0
- {nonebot_plugin_l4d2_server-1.0.0b1 → nonebot_plugin_l4d2_server-1.0.1}/nonebot_plugin_l4d2_server/l4_image/img/template/github.svg +0 -0
- {nonebot_plugin_l4d2_server-1.0.0b1 → nonebot_plugin_l4d2_server-1.0.1}/nonebot_plugin_l4d2_server/l4_image/img/template/l.svg +0 -0
- {nonebot_plugin_l4d2_server-1.0.0b1 → nonebot_plugin_l4d2_server-1.0.1}/nonebot_plugin_l4d2_server/l4_image/img/template/m.svg +0 -0
- {nonebot_plugin_l4d2_server-1.0.0b1 → nonebot_plugin_l4d2_server-1.0.1}/nonebot_plugin_l4d2_server/l4_image/img/template/normal.html +0 -0
- {nonebot_plugin_l4d2_server-1.0.0b1 → nonebot_plugin_l4d2_server-1.0.1}/nonebot_plugin_l4d2_server/l4_image/img/template/vue.css +0 -0
- {nonebot_plugin_l4d2_server-1.0.0b1 → nonebot_plugin_l4d2_server-1.0.1}/nonebot_plugin_l4d2_server/l4_image/img/template/w.svg +0 -0
- {nonebot_plugin_l4d2_server-1.0.0b1 → nonebot_plugin_l4d2_server-1.0.1}/nonebot_plugin_l4d2_server/l4_image/model.py +0 -0
- {nonebot_plugin_l4d2_server-1.0.0b1 → nonebot_plugin_l4d2_server-1.0.1}/nonebot_plugin_l4d2_server/l4_image/vtfs.py +0 -0
- {nonebot_plugin_l4d2_server-1.0.0b1 → nonebot_plugin_l4d2_server-1.0.1}/nonebot_plugin_l4d2_server/l4_local/file.py +0 -0
- {nonebot_plugin_l4d2_server-1.0.0b1 → nonebot_plugin_l4d2_server-1.0.1}/nonebot_plugin_l4d2_server/l4_request/utils.py +0 -0
- {nonebot_plugin_l4d2_server-1.0.0b1 → nonebot_plugin_l4d2_server-1.0.1}/nonebot_plugin_l4d2_server/utils/api/api.py +0 -0
- {nonebot_plugin_l4d2_server-1.0.0b1 → nonebot_plugin_l4d2_server-1.0.1}/nonebot_plugin_l4d2_server/utils/api/models.py +0 -0
- {nonebot_plugin_l4d2_server-1.0.0b1 → nonebot_plugin_l4d2_server-1.0.1}/nonebot_plugin_l4d2_server/utils/database/models.py +0 -0
- {nonebot_plugin_l4d2_server-1.0.0b1 → nonebot_plugin_l4d2_server-1.0.1}/nonebot_plugin_l4d2_server/utils/utils.py +0 -0
@@ -1,9 +1,8 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: nonebot-plugin-l4d2-server
|
3
|
-
Version: 1.0.
|
3
|
+
Version: 1.0.1
|
4
4
|
Summary: L4D2 server related operations plugin for NoneBot2
|
5
5
|
Keywords: steam,game,l4d2,nonebot2,plugin
|
6
|
-
Home-page: https://github.com/Agnes4m/nonebot_plugin_l4d2_server
|
7
6
|
Author-Email: Agnes_Digital <Z735803792@163.com>
|
8
7
|
License: GPLv3
|
9
8
|
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
|
@@ -13,7 +12,7 @@ Classifier: Programming Language :: Python :: 3.9
|
|
13
12
|
Classifier: Programming Language :: Python :: 3.10
|
14
13
|
Classifier: Programming Language :: Python :: 3.11
|
15
14
|
Classifier: Operating System :: OS Independent
|
16
|
-
Project-URL:
|
15
|
+
Project-URL: homepage, https://github.com/Agnes4m/nonebot_plugin_l4d2_server
|
17
16
|
Requires-Python: <4.0,>=3.9
|
18
17
|
Requires-Dist: nonebot2>=2.0.0
|
19
18
|
Requires-Dist: nonebot-plugin-htmlrender>=0.3.0
|
@@ -87,7 +86,6 @@ _✨Nonebot & Left 4 Dead 2 server操作✨_
|
|
87
86
|
|
88
87
|
以下提到的方法 任选**其一** 即可
|
89
88
|
|
90
|
-
|
91
89
|
<details open>
|
92
90
|
<summary>[推荐] 使用 nb-cli 安装</summary>
|
93
91
|
在 nonebot2 项目的根目录下打开命令行, 输入以下指令即可安装
|
@@ -164,7 +162,7 @@ conda install nonebot-plugin-l4d2-server
|
|
164
162
|
l4_style = "default"
|
165
163
|
"""图片风格,可选包括以下,默认简洁
|
166
164
|
- 暗风格
|
167
|
-
- 孤独摇滚
|
165
|
+
- 孤独摇滚
|
168
166
|
- 电玩像素
|
169
167
|
- 缤纷彩虹
|
170
168
|
"""
|
@@ -185,7 +183,7 @@ conda install nonebot-plugin-l4d2-server
|
|
185
183
|
- 水果 - html图片优化
|
186
184
|
|
187
185
|
- 感谢以下服主大力支持
|
188
|
-
- Michaela's | 机器人功能测试反馈
|
186
|
+
- Michaela's | 机器人功能测试反馈
|
189
187
|
- 东 | 提供docker部署方法等建议 | [电信服anne游戏群](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=6i7r5aJ7Jyg0ejby4rt9GWmFRF53nV1K&authKey=ekMsWepBZPL26%2BfJAG%2F95JD0fhvH39%2BIGVyKOvNlXVDbpIclJlly4kXqukL7JhWR&noverify=0&group_code=883237206)
|
190
188
|
- 迷茫 | 催命更新byd
|
191
189
|
- ArcPav | 积极反馈bug,提供改进思路
|
@@ -51,7 +51,6 @@ _✨Nonebot & Left 4 Dead 2 server操作✨_
|
|
51
51
|
|
52
52
|
以下提到的方法 任选**其一** 即可
|
53
53
|
|
54
|
-
|
55
54
|
<details open>
|
56
55
|
<summary>[推荐] 使用 nb-cli 安装</summary>
|
57
56
|
在 nonebot2 项目的根目录下打开命令行, 输入以下指令即可安装
|
@@ -128,7 +127,7 @@ conda install nonebot-plugin-l4d2-server
|
|
128
127
|
l4_style = "default"
|
129
128
|
"""图片风格,可选包括以下,默认简洁
|
130
129
|
- 暗风格
|
131
|
-
- 孤独摇滚
|
130
|
+
- 孤独摇滚
|
132
131
|
- 电玩像素
|
133
132
|
- 缤纷彩虹
|
134
133
|
"""
|
@@ -149,7 +148,7 @@ conda install nonebot-plugin-l4d2-server
|
|
149
148
|
- 水果 - html图片优化
|
150
149
|
|
151
150
|
- 感谢以下服主大力支持
|
152
|
-
- Michaela's | 机器人功能测试反馈
|
151
|
+
- Michaela's | 机器人功能测试反馈
|
153
152
|
- 东 | 提供docker部署方法等建议 | [电信服anne游戏群](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=6i7r5aJ7Jyg0ejby4rt9GWmFRF53nV1K&authKey=ekMsWepBZPL26%2BfJAG%2F95JD0fhvH39%2BIGVyKOvNlXVDbpIclJlly4kXqukL7JhWR&noverify=0&group_code=883237206)
|
154
153
|
- 迷茫 | 催命更新byd
|
155
154
|
- ArcPav | 积极反馈bug,提供改进思路
|
@@ -15,8 +15,10 @@
|
|
15
15
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
16
16
|
"""
|
17
17
|
|
18
|
+
from pathlib import Path
|
18
19
|
from typing import TYPE_CHECKING, List, Optional
|
19
20
|
|
21
|
+
import ujson as json
|
20
22
|
from nonebot.adapters import Message
|
21
23
|
from nonebot.log import logger
|
22
24
|
from nonebot.matcher import Matcher
|
@@ -33,6 +35,7 @@ from .l4_request import (
|
|
33
35
|
get_ip_server,
|
34
36
|
get_server_detail,
|
35
37
|
reload_ip,
|
38
|
+
tj_request
|
36
39
|
)
|
37
40
|
from .utils.api.request import L4API
|
38
41
|
|
@@ -48,6 +51,9 @@ l4_all = on_command("l4all", aliases={"l4全服"})
|
|
48
51
|
l4_connect = on_command("connect", aliases={"l4连接"})
|
49
52
|
l4_find_player = on_command("l4find", aliases={"l4查找"})
|
50
53
|
|
54
|
+
ld_tj = on_command("tj", aliases={"探监"})
|
55
|
+
ld_zl = on_command("zl")
|
56
|
+
ld_kl = on_command("kl")
|
51
57
|
|
52
58
|
@l4_help.handle()
|
53
59
|
async def _(matcher: Matcher):
|
@@ -136,6 +142,88 @@ async def _(args: Message = CommandArg()):
|
|
136
142
|
if not arg:
|
137
143
|
reload_ip()
|
138
144
|
logger.success("重载ip完成")
|
145
|
+
with (Path(config.l4_path) / "config.json").open("r", encoding="utf-8") as f:
|
146
|
+
content = f.read().strip()
|
147
|
+
ip_json = json.loads(content)
|
148
|
+
for tag, url in ip_json.items():
|
149
|
+
logger.info(f"重载{tag}的ip")
|
150
|
+
await L4API.get_sourceban(tag, url)
|
139
151
|
await UniMessage.text("重载ip完成").finish()
|
152
|
+
|
153
|
+
|
154
|
+
l4_add_ban = on_command("l4addban", aliases={"l4添加ban"})
|
155
|
+
@l4_add_ban.handle()
|
156
|
+
async def _(args: Message = CommandArg()):
|
157
|
+
arg = args.extract_plain_text().strip().split(" ")
|
158
|
+
|
159
|
+
if len(arg) != 2:
|
160
|
+
await UniMessage.text("请在命令后增加响应指令名和网址").finish()
|
161
|
+
|
162
|
+
config_path = Path(config.l4_path) / "config.json"
|
163
|
+
|
164
|
+
if not config_path.is_file():
|
165
|
+
config_data = {}
|
140
166
|
else:
|
141
|
-
|
167
|
+
try:
|
168
|
+
with config_path.open("r") as f:
|
169
|
+
config_data = json.load(f)
|
170
|
+
except (json.JSONDecodeError, FileNotFoundError):
|
171
|
+
config_data = {}
|
172
|
+
|
173
|
+
config_data.update({arg[0]: arg[1]})
|
174
|
+
|
175
|
+
try:
|
176
|
+
with config_path.open("w") as f:
|
177
|
+
json.dump(config_data, f, ensure_ascii=False, indent=4)
|
178
|
+
except IOError as e:
|
179
|
+
await UniMessage.text(f"文件写入失败: {e}").finish()
|
180
|
+
|
181
|
+
await L4API.get_sourceban(arg[0], arg[1])
|
182
|
+
await UniMessage.text(f"添加成功\n组名: {arg[0]}\n网址: {arg[1]}").finish()
|
183
|
+
|
184
|
+
|
185
|
+
l4_del_ban = on_command("l4delban", aliases={"l4删除ban", "l4移除ban"})
|
186
|
+
@l4_del_ban.handle()
|
187
|
+
async def _(args: Message = CommandArg()):
|
188
|
+
arg = args.extract_plain_text().strip().split(" ")
|
189
|
+
if len(arg) not in [1,2]:
|
190
|
+
await UniMessage.text("请在命令后增加响应指令名或者带响应网址").finish()
|
191
|
+
elif len(arg) == 1:
|
192
|
+
if not Path(Path(config.l4_path) / "config.json").is_file():
|
193
|
+
await UniMessage.text("没有添加过组名").finish()
|
194
|
+
else:
|
195
|
+
with (Path(config.l4_path) / "config.json").open("r", encoding="utf-8") as f:
|
196
|
+
content = f.read().strip()
|
197
|
+
config_data = json.loads(content)
|
198
|
+
if arg[0] not in config_data:
|
199
|
+
await UniMessage.text("没有添加过这个组").finish()
|
200
|
+
else:
|
201
|
+
del config_data[arg[0]]
|
202
|
+
with Path(Path(config.l4_path) / "config.json").open("w") as f:
|
203
|
+
json.dump(config_data, f,ensure_ascii=False,indent=4)
|
204
|
+
await UniMessage.text(f"删除成功,组名:{arg[0]}").finish()
|
205
|
+
elif len(arg) == 2:
|
206
|
+
if not Path(Path(config.l4_path) / "config.json").is_file():
|
207
|
+
await UniMessage.text("没有添加过组名").finish()
|
208
|
+
else:
|
209
|
+
with (Path(config.l4_path) / "config.json").open("r", encoding="utf-8") as f:
|
210
|
+
content = f.read().strip()
|
211
|
+
config_datas = json.loads(content)
|
212
|
+
if arg[0] not in config_datas:
|
213
|
+
await UniMessage.text("没有添加过这个组").finish()
|
214
|
+
else:
|
215
|
+
config_datas[arg[0]] = arg[1]
|
216
|
+
with Path(Path(config.l4_path) / "config.json").open("w") as f:
|
217
|
+
json.dump(config_datas, f,ensure_ascii=False,indent=4)
|
218
|
+
await UniMessage.text(f"修改成功,组名:{arg[0]},网址:{arg[1]}").finish()
|
219
|
+
|
220
|
+
|
221
|
+
@ld_tj.handle()
|
222
|
+
async def _(matcher: Matcher):
|
223
|
+
await matcher.send("正在寻找牢房信息")
|
224
|
+
await matcher.finish(await tj_request("云","tj"))
|
225
|
+
|
226
|
+
@ld_zl.handle()
|
227
|
+
async def _(matcher: Matcher):
|
228
|
+
await matcher.send("正在寻找牢房信息")
|
229
|
+
await matcher.finish(await tj_request("云","zl"))
|
@@ -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.
|
13
|
+
__version__ = "1.0.1"
|
14
14
|
TEXT_PATH = Path(__file__).parent / "texture2d"
|
15
15
|
HELP_DATA = Path(__file__).parent / "Help.json"
|
16
16
|
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -10,7 +10,11 @@ from ..l4_image.convert import text2pic
|
|
10
10
|
from ..utils.utils import mes_list
|
11
11
|
from .file import updown_l4d2_vpk
|
12
12
|
|
13
|
-
|
13
|
+
try:
|
14
|
+
vpk_path = config.l4_local[map_index]
|
15
|
+
except IndexError:
|
16
|
+
logger.warning("未填写本地服务器路径,如果想要使用本地服务器功能,请填写本地服务器路径")
|
17
|
+
vpk_path = ""
|
14
18
|
|
15
19
|
local_path_list = config.l4_local
|
16
20
|
if not local_path_list:
|
@@ -1,18 +1,18 @@
|
|
1
|
+
import random
|
1
2
|
from typing import Dict, List, Optional, cast
|
2
3
|
|
3
4
|
from nonebot.log import logger
|
4
|
-
|
5
5
|
from ..config import server_all_path
|
6
6
|
from ..l4_image import msg_to_image
|
7
7
|
from ..utils.api.models import AllServer, NserverOut, OutServer
|
8
8
|
from ..utils.utils import split_maohao
|
9
|
-
from .draw_msg import draw_one_ip, get_much_server
|
10
|
-
|
9
|
+
from .draw_msg import draw_one_ip, get_much_server, convert_duration
|
10
|
+
from ..utils.api.request import L4API
|
11
11
|
try:
|
12
12
|
import ujson as json
|
13
13
|
except ImportError:
|
14
14
|
import json
|
15
|
-
|
15
|
+
from ..config import config
|
16
16
|
|
17
17
|
# 获取全部服务器信息
|
18
18
|
ALLHOST: Dict[str, List[NserverOut]] = {}
|
@@ -141,3 +141,69 @@ def reload_ip():
|
|
141
141
|
|
142
142
|
if item.name.endswith("txt"):
|
143
143
|
"""to do"""
|
144
|
+
|
145
|
+
async def tj_request(command: str = "云",tj ="tj"):
|
146
|
+
server_json = ALLHOST.get(command)
|
147
|
+
logger.info(server_json)
|
148
|
+
if server_json is None:
|
149
|
+
logger.warning("未找到这个组")
|
150
|
+
return None
|
151
|
+
# 返回单个
|
152
|
+
logger.info("正在anne电信服务器信息")
|
153
|
+
player_msg = ""
|
154
|
+
right_ip = []
|
155
|
+
for i in server_json:
|
156
|
+
ser_list = await L4API.a2s_info([(i["host"], i["port"])], is_player=True)
|
157
|
+
one_server = ser_list[0][0]
|
158
|
+
one_player = ser_list[0][1]
|
159
|
+
|
160
|
+
# 判断坐牢条件
|
161
|
+
if tj == "tj":
|
162
|
+
if "普通药役" in one_server.map_name:
|
163
|
+
score: int = 0
|
164
|
+
for index, player in enumerate(one_player, 1):
|
165
|
+
if index > 4:
|
166
|
+
break
|
167
|
+
score += player.score
|
168
|
+
|
169
|
+
t = one_server.map_name.split("[")[-1].split("特")[0]
|
170
|
+
if int(t)*50 < score:
|
171
|
+
right_ip.append(i)
|
172
|
+
if tj == "zl":
|
173
|
+
if "普通药役" in one_server.map_name and len(one_player) <= 4:
|
174
|
+
right_ip.append(i)
|
175
|
+
|
176
|
+
|
177
|
+
if not right_ip:
|
178
|
+
return "没有符合条件的服务器"
|
179
|
+
|
180
|
+
s = random.choice(right_ip)
|
181
|
+
ser_list = await L4API.a2s_info([(s["host"], s["port"])], is_player=True)
|
182
|
+
one_server = ser_list[0][0]
|
183
|
+
one_player = ser_list[0][1]
|
184
|
+
if len(one_player):
|
185
|
+
max_duration_len = max(
|
186
|
+
[len(str(await convert_duration(i.duration))) for i in one_player],
|
187
|
+
)
|
188
|
+
max_score_len = max(len(str(i.score)) for i in one_player)
|
189
|
+
|
190
|
+
for player in one_player:
|
191
|
+
soc = "[{:>{}}]".format(player.score, max_score_len)
|
192
|
+
chines_dur = await convert_duration(player.duration)
|
193
|
+
dur = "{:^{}}".format(chines_dur, max_duration_len)
|
194
|
+
name = f"{player.name[0]}***{player.name[-1]}"
|
195
|
+
player_msg += f"{soc} | {dur} | {name} \n"
|
196
|
+
else:
|
197
|
+
player_msg = "服务器感觉很安静啊"
|
198
|
+
msg = f"""*{one_server.server_name}*
|
199
|
+
游戏: {one_server.folder}
|
200
|
+
地图: {one_server.map_name}
|
201
|
+
人数: {one_server.player_count}/{one_server.max_players}"""
|
202
|
+
if one_server.ping is not None:
|
203
|
+
msg += f"""
|
204
|
+
ping: {one_server.ping * 1000:.0f}ms
|
205
|
+
{player_msg}"""
|
206
|
+
if config.l4_show_ip:
|
207
|
+
msg += f"""
|
208
|
+
connect {s["host"]}:{s["port"]}"""
|
209
|
+
return msg
|
@@ -29,8 +29,13 @@ async def draw_one_ip(host: str, port: int):
|
|
29
29
|
soc = "[{:>{}}]".format(player.score, max_score_len)
|
30
30
|
chines_dur = await convert_duration(player.duration)
|
31
31
|
dur = "{:^{}}".format(chines_dur, max_duration_len)
|
32
|
-
|
33
|
-
|
32
|
+
name_leg = len(player.name)
|
33
|
+
if name_leg > 2:
|
34
|
+
xing = "*" * (name_leg - 2)
|
35
|
+
name = f"{player.name[0]}xing{player.name[-1]}"
|
36
|
+
else:
|
37
|
+
name = player.name
|
38
|
+
player_msg += f"{soc} | {dur} | {name} \n"
|
34
39
|
else:
|
35
40
|
player_msg = "服务器感觉很安静啊"
|
36
41
|
|
@@ -2,13 +2,17 @@ import asyncio
|
|
2
2
|
import contextlib
|
3
3
|
import socket
|
4
4
|
from copy import deepcopy
|
5
|
+
from pathlib import Path
|
5
6
|
from typing import Any, Dict, List, Literal, Optional, Tuple, cast
|
6
7
|
|
7
8
|
import a2s
|
8
9
|
import ujson as js
|
10
|
+
import ujson as json
|
9
11
|
from bs4 import BeautifulSoup
|
10
12
|
from httpx import AsyncClient
|
11
13
|
|
14
|
+
from ...config import config
|
15
|
+
|
12
16
|
# from nonebot.log import logger
|
13
17
|
from ..utils import split_maohao
|
14
18
|
from .api import AnnePlayerApi, AnneSearchApi, anne_ban
|
@@ -154,8 +158,10 @@ class L4D2Api:
|
|
154
158
|
html_content = resp.content
|
155
159
|
return BeautifulSoup(html_content, "lxml")
|
156
160
|
|
157
|
-
async def get_sourceban(self, url: str = anne_ban):
|
161
|
+
async def get_sourceban(self, tag:str = "云", url: str = anne_ban):
|
158
162
|
"""从sourceban++获取服务器列表,目前未做名称处理"""
|
163
|
+
if not (url.startswith(("http://", "https://"))):
|
164
|
+
url = "http://" + url # 默认添加 http://
|
159
165
|
soup = await self._server_request(
|
160
166
|
url=url,
|
161
167
|
is_json=False,
|
@@ -177,6 +183,24 @@ class L4D2Api:
|
|
177
183
|
SourceBansInfo(index=index, host=host, port=port),
|
178
184
|
)
|
179
185
|
|
186
|
+
if not Path(Path(config.l4_path) / "config.json").is_file():
|
187
|
+
with Path(Path(config.l4_path) / "config.json").open("w") as f:
|
188
|
+
f.write("{}")
|
189
|
+
with (Path(config.l4_path) / "config.json").open("r", encoding="utf-8") as f:
|
190
|
+
content = f.read().strip()
|
191
|
+
ip_json = json.loads(content)
|
192
|
+
if tag in ip_json:
|
193
|
+
url = ip_json[tag]
|
194
|
+
with (Path(Path(config.l4_path) / f"l4d2/{tag}.json")).open("w") as f:
|
195
|
+
print(Path(Path(config.l4_path) / f"l4d2/{tag}.json"))
|
196
|
+
up_data = {}
|
197
|
+
for server in server_list:
|
198
|
+
new_dict = {}
|
199
|
+
new_dict["id"] = int(server.index )+ 1
|
200
|
+
new_dict["ip"] = server.host + ":" + str(server.port)
|
201
|
+
up_data.update(new_dict)
|
202
|
+
print(up_data)
|
203
|
+
json.dump(up_data, f)
|
180
204
|
return server_list
|
181
205
|
|
182
206
|
async def get_anne_steamid(self, name: str):
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|