init: QQ Bot - PS2 游戏数据查询机器人

This commit is contained in:
VanuSystems Dev
2026-07-15 09:46:49 +08:00
commit 2f78aae3d6
47 changed files with 48070 additions and 0 deletions
+12
View File
@@ -0,0 +1,12 @@
venv/
__pycache__/
*.pyc
.DS_Store
config.yaml
botpy.log
botpy_error.log
keys/
locks/
snapshots/
*.jpg
*.png
+1
View File
@@ -0,0 +1 @@
雨云ubantu 图床请求
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+30196
View File
File diff suppressed because it is too large Load Diff
+581
View File
@@ -0,0 +1,581 @@
{
"code": 1,
"message": "成功",
"data": {
"total": 1049,
"details": {
"Jaeger": {
"mapDetails": {
"Esamir": {
"latestCloseDate": 1716299840000,
"latestOpenDate": 1716304803159,
"lockedFaction": "None",
"unlocked": true,
"latestAlertInstanceId": null,
"latestAlertDurationMillSeconds": 0,
"latestAlertStartDate": null,
"latestAlertEndDate": null,
"territoryPercentageVS": 0.3469387755102041,
"territoryPercentageTR": 0.3877551020408163,
"territoryPercentageNC": 0.2653061224489796,
"populationNC": 0,
"populationVS": 0,
"populationTR": 0,
"populationNSO": 0
},
"Hossin": {
"latestCloseDate": 1716299842405,
"latestOpenDate": 1716304744576,
"lockedFaction": "None",
"unlocked": true,
"latestAlertInstanceId": null,
"latestAlertDurationMillSeconds": 0,
"latestAlertStartDate": null,
"latestAlertEndDate": null,
"territoryPercentageVS": 0.4659090909090909,
"territoryPercentageTR": 0.42045454545454547,
"territoryPercentageNC": 0.11363636363636363,
"populationNC": 0,
"populationVS": 0,
"populationTR": 0,
"populationNSO": 0
},
"Amerish": {
"latestCloseDate": 1716299845000,
"latestOpenDate": 1716304803159,
"lockedFaction": "None",
"unlocked": true,
"latestAlertInstanceId": null,
"latestAlertDurationMillSeconds": 0,
"latestAlertStartDate": null,
"latestAlertEndDate": null,
"territoryPercentageVS": 0.43209876543209874,
"territoryPercentageTR": 0.13580246913580246,
"territoryPercentageNC": 0.41975308641975306,
"populationNC": 0,
"populationVS": 0,
"populationTR": 0,
"populationNSO": 0
},
"Indar": {
"latestCloseDate": 1716299840000,
"latestOpenDate": 1716299899528,
"lockedFaction": "None",
"unlocked": true,
"latestAlertInstanceId": null,
"latestAlertDurationMillSeconds": 0,
"latestAlertStartDate": null,
"latestAlertEndDate": null,
"territoryPercentageVS": 0.3146067415730337,
"territoryPercentageTR": 0.24719101123595505,
"territoryPercentageNC": 0.43820224719101125,
"populationNC": 0,
"populationVS": 0,
"populationTR": 0,
"populationNSO": 0
},
"Oshur": {
"latestCloseDate": 1716299840000,
"latestOpenDate": 1716304744576,
"lockedFaction": "None",
"unlocked": true,
"latestAlertInstanceId": null,
"latestAlertDurationMillSeconds": 0,
"latestAlertStartDate": null,
"latestAlertEndDate": null,
"territoryPercentageVS": 0.3188405797101449,
"territoryPercentageTR": 0.3333333333333333,
"territoryPercentageNC": 0.34782608695652173,
"populationNC": 0,
"populationVS": 0,
"populationTR": 0,
"populationNSO": 0
}
},
"total": 0,
"tr": 0,
"vs": 0,
"nso": 0,
"nc": 0
},
"Soltech": {
"mapDetails": {
"Esamir": {
"latestCloseDate": 1716763543000,
"latestOpenDate": 1716742720000,
"lockedFaction": "TR",
"unlocked": false,
"latestAlertInstanceId": "26910",
"latestAlertDurationMillSeconds": 0,
"latestAlertStartDate": 1716760842000,
"latestAlertEndDate": 1716763543000,
"territoryPercentageVS": 0,
"territoryPercentageTR": 1,
"territoryPercentageNC": 0,
"populationNC": -1,
"populationVS": 0,
"populationTR": 0,
"populationNSO": 0
},
"Hossin": {
"latestCloseDate": 1716742720000,
"latestOpenDate": 1716733720000,
"lockedFaction": "NC",
"unlocked": false,
"latestAlertInstanceId": "26909",
"latestAlertDurationMillSeconds": 0,
"latestAlertStartDate": 1716737319000,
"latestAlertEndDate": 1716742720000,
"territoryPercentageVS": 0,
"territoryPercentageTR": 0,
"territoryPercentageNC": 1,
"populationNC": 1,
"populationVS": 1,
"populationTR": -1,
"populationNSO": 1
},
"Amerish": {
"latestCloseDate": 1716733720000,
"latestOpenDate": 1716719024000,
"lockedFaction": "NC",
"unlocked": false,
"latestAlertInstanceId": "26908",
"latestAlertDurationMillSeconds": 0,
"latestAlertStartDate": 1716728319000,
"latestAlertEndDate": 1716733720000,
"territoryPercentageVS": 0,
"territoryPercentageTR": 0,
"territoryPercentageNC": 1,
"populationNC": 0,
"populationVS": 0,
"populationTR": 5,
"populationNSO": 0
},
"Indar": {
"latestCloseDate": 1716719024000,
"latestOpenDate": 1716763543000,
"lockedFaction": "None",
"unlocked": true,
"latestAlertInstanceId": "26907",
"latestAlertDurationMillSeconds": 0,
"latestAlertStartDate": 1716713622000,
"latestAlertEndDate": 1716719023000,
"territoryPercentageVS": 0.2631578947368421,
"territoryPercentageTR": 0.2631578947368421,
"territoryPercentageNC": 0.47368421052631576,
"populationNC": 8,
"populationVS": 2,
"populationTR": 6,
"populationNSO": 2
},
"Oshur": {
"latestCloseDate": 1716614590000,
"latestOpenDate": 1716612158000,
"lockedFaction": "VS",
"unlocked": false,
"latestAlertInstanceId": "26901",
"latestAlertDurationMillSeconds": 0,
"latestAlertStartDate": 1716612788000,
"latestAlertEndDate": 1716614589000,
"territoryPercentageVS": 1,
"territoryPercentageTR": 0,
"territoryPercentageNC": 0,
"populationNC": 0,
"populationVS": 0,
"populationTR": 0,
"populationNSO": 0
}
},
"total": 47,
"tr": 17,
"vs": 8,
"nso": 5,
"nc": 17
},
"Connery": {
"mapDetails": {
"Esamir": {
"latestCloseDate": 1716737210000,
"latestOpenDate": 1716711837000,
"lockedFaction": "NC",
"unlocked": false,
"latestAlertInstanceId": "43120",
"latestAlertDurationMillSeconds": 0,
"latestAlertStartDate": 1716734508000,
"latestAlertEndDate": 1716737209000,
"territoryPercentageVS": 0,
"territoryPercentageTR": 0,
"territoryPercentageNC": 1,
"populationNC": 0,
"populationVS": 0,
"populationTR": 0,
"populationNSO": 0
},
"Hossin": {
"latestCloseDate": 1716711837000,
"latestOpenDate": 1716758460000,
"lockedFaction": "None",
"unlocked": true,
"latestAlertInstanceId": "43119",
"latestAlertDurationMillSeconds": 0,
"latestAlertStartDate": 1716709136000,
"latestAlertEndDate": 1716711837000,
"territoryPercentageVS": 0.3090909090909091,
"territoryPercentageTR": 0.36363636363636365,
"territoryPercentageNC": 0.32727272727272727,
"populationNC": 21,
"populationVS": 16,
"populationTR": 17,
"populationNSO": 3
},
"Amerish": {
"latestCloseDate": 1716758460000,
"latestOpenDate": 1716737210000,
"lockedFaction": "TR",
"unlocked": false,
"latestAlertInstanceId": "43121",
"latestAlertDurationMillSeconds": 0,
"latestAlertStartDate": 1716755759000,
"latestAlertEndDate": 1716758460000,
"territoryPercentageVS": 0,
"territoryPercentageTR": 1,
"territoryPercentageNC": 0,
"populationNC": 0,
"populationVS": 0,
"populationTR": 0,
"populationNSO": 0
},
"Indar": {
"latestCloseDate": 1716686941000,
"latestOpenDate": 1716666118000,
"lockedFaction": "NC",
"unlocked": false,
"latestAlertInstanceId": "43118",
"latestAlertDurationMillSeconds": 0,
"latestAlertStartDate": 1716684240000,
"latestAlertEndDate": 1716686941000,
"territoryPercentageVS": 0,
"territoryPercentageTR": 0,
"territoryPercentageNC": 1,
"populationNC": 0,
"populationVS": 0,
"populationTR": 0,
"populationNSO": 0
},
"Oshur": {
"latestCloseDate": 1716557420000,
"latestOpenDate": 1716554989000,
"lockedFaction": "NC",
"unlocked": false,
"latestAlertInstanceId": "43112",
"latestAlertDurationMillSeconds": 0,
"latestAlertStartDate": 1716555619000,
"latestAlertEndDate": 1716557420000,
"territoryPercentageVS": 0,
"territoryPercentageTR": 0,
"territoryPercentageNC": 1,
"populationNC": 0,
"populationVS": 0,
"populationTR": 0,
"populationNSO": 0
}
},
"total": 73,
"tr": 26,
"vs": 17,
"nso": 5,
"nc": 25
},
"Cobalt": {
"mapDetails": {
"Esamir": {
"latestCloseDate": 1716741339000,
"latestOpenDate": 1716760301000,
"lockedFaction": "None",
"unlocked": true,
"latestAlertInstanceId": "36648",
"latestAlertDurationMillSeconds": 0,
"latestAlertStartDate": 1716735938000,
"latestAlertEndDate": 1716741339000,
"territoryPercentageVS": 0.2972972972972973,
"territoryPercentageTR": 0.40540540540540543,
"territoryPercentageNC": 0.2972972972972973,
"populationNC": 6,
"populationVS": 10,
"populationTR": 10,
"populationNSO": 1
},
"Hossin": {
"latestCloseDate": 1716750361136,
"latestOpenDate": 1716741339000,
"lockedFaction": "VS",
"unlocked": false,
"latestAlertInstanceId": "36649",
"latestAlertDurationMillSeconds": 0,
"latestAlertStartDate": 1716744939000,
"latestAlertEndDate": 1716750340000,
"territoryPercentageVS": 1,
"territoryPercentageTR": 0,
"territoryPercentageNC": 0,
"populationNC": -1,
"populationVS": -2,
"populationTR": -1,
"populationNSO": 0
},
"Amerish": {
"latestCloseDate": 1716720678000,
"latestOpenDate": 1716694418000,
"lockedFaction": "TR",
"unlocked": false,
"latestAlertInstanceId": "36647",
"latestAlertDurationMillSeconds": 0,
"latestAlertStartDate": 1716715277000,
"latestAlertEndDate": 1716720678000,
"territoryPercentageVS": 0,
"territoryPercentageTR": 1,
"territoryPercentageNC": 0,
"populationNC": -2,
"populationVS": 1,
"populationTR": -1,
"populationNSO": 0
},
"Indar": {
"latestCloseDate": 1716760301000,
"latestOpenDate": 1716750361136,
"lockedFaction": "TR",
"unlocked": false,
"latestAlertInstanceId": "36650",
"latestAlertDurationMillSeconds": 0,
"latestAlertStartDate": 1716754900000,
"latestAlertEndDate": 1716760301000,
"territoryPercentageVS": 0,
"territoryPercentageTR": 1,
"territoryPercentageNC": 0,
"populationNC": 0,
"populationVS": -1,
"populationTR": -1,
"populationNSO": 1
},
"Oshur": {
"latestCloseDate": 1716664476000,
"latestOpenDate": 1716657877000,
"lockedFaction": "VS",
"unlocked": false,
"latestAlertInstanceId": "36644",
"latestAlertDurationMillSeconds": 0,
"latestAlertStartDate": 1716661775000,
"latestAlertEndDate": 1716664476000,
"territoryPercentageVS": 1,
"territoryPercentageTR": 0,
"territoryPercentageNC": 0,
"populationNC": 0,
"populationVS": 0,
"populationTR": 0,
"populationNSO": 0
}
},
"total": 31,
"tr": 11,
"vs": 11,
"nso": 1,
"nc": 8
},
"Emerald": {
"mapDetails": {
"Esamir": {
"latestCloseDate": 1716762974000,
"latestOpenDate": 1716754671000,
"lockedFaction": "VS",
"unlocked": false,
"latestAlertInstanceId": "51935",
"latestAlertDurationMillSeconds": 0,
"latestAlertStartDate": 1716757572000,
"latestAlertEndDate": 1716762973000,
"territoryPercentageVS": 1,
"territoryPercentageTR": 0,
"territoryPercentageNC": 0,
"populationNC": -1,
"populationVS": 1,
"populationTR": 1,
"populationNSO": 0
},
"Hossin": {
"latestCloseDate": 1716754671000,
"latestOpenDate": 1716731147000,
"lockedFaction": "VS",
"unlocked": false,
"latestAlertInstanceId": "51934",
"latestAlertDurationMillSeconds": 0,
"latestAlertStartDate": 1716749269000,
"latestAlertEndDate": 1716754670000,
"territoryPercentageVS": 1,
"territoryPercentageTR": 0,
"territoryPercentageNC": 0,
"populationNC": 0,
"populationVS": -2,
"populationTR": 0,
"populationNSO": 1
},
"Amerish": {
"latestCloseDate": 1716706393000,
"latestOpenDate": 1716768602167,
"lockedFaction": "None",
"unlocked": true,
"latestAlertInstanceId": "51930",
"latestAlertDurationMillSeconds": 0,
"latestAlertStartDate": 1716700991000,
"latestAlertEndDate": 1716706393000,
"territoryPercentageVS": 0.1875,
"territoryPercentageTR": 0.3125,
"territoryPercentageNC": 0.5,
"populationNC": 27,
"populationVS": 12,
"populationTR": 11,
"populationNSO": 0
},
"Indar": {
"latestCloseDate": 1716728412000,
"latestOpenDate": 1716762974000,
"lockedFaction": "None",
"unlocked": true,
"latestAlertInstanceId": "51936",
"latestAlertDurationMillSeconds": 0,
"latestAlertStartDate": 1716769203000,
"latestAlertEndDate": 1716728412000,
"territoryPercentageVS": 0.3146067415730337,
"territoryPercentageTR": 0.3258426966292135,
"territoryPercentageNC": 0.3595505617977528,
"populationNC": 224,
"populationVS": 207,
"populationTR": 219,
"populationNSO": 65
},
"Oshur": {
"latestCloseDate": 1716731147000,
"latestOpenDate": 1716728412000,
"lockedFaction": "VS",
"unlocked": false,
"latestAlertInstanceId": "51933",
"latestAlertDurationMillSeconds": 0,
"latestAlertStartDate": 1716730846000,
"latestAlertEndDate": 1716731147000,
"territoryPercentageVS": 1,
"territoryPercentageTR": 0,
"territoryPercentageNC": 0,
"populationNC": -3,
"populationVS": 0,
"populationTR": -1,
"populationNSO": 0
}
},
"total": 882,
"tr": 271,
"vs": 246,
"nso": 78,
"nc": 287
},
"Miller": {
"mapDetails": {
"Esamir": {
"latestCloseDate": 1716750120000,
"latestOpenDate": 1716736439000,
"lockedFaction": "NC",
"unlocked": false,
"latestAlertInstanceId": "37752",
"latestAlertDurationMillSeconds": 0,
"latestAlertStartDate": 1716744718000,
"latestAlertEndDate": 1716750119000,
"territoryPercentageVS": 0,
"territoryPercentageTR": 0,
"territoryPercentageNC": 1,
"populationNC": 0,
"populationVS": -1,
"populationTR": 0,
"populationNSO": 0
},
"Hossin": {
"latestCloseDate": 1716720569000,
"latestOpenDate": 1716758519000,
"lockedFaction": "None",
"unlocked": true,
"latestAlertInstanceId": "37750",
"latestAlertDurationMillSeconds": 0,
"latestAlertStartDate": 1716715167000,
"latestAlertEndDate": 1716720568000,
"territoryPercentageVS": 0.2727272727272727,
"territoryPercentageTR": 0.2545454545454545,
"territoryPercentageNC": 0.4727272727272727,
"populationNC": 4,
"populationVS": -1,
"populationTR": 2,
"populationNSO": 2
},
"Amerish": {
"latestCloseDate": 1716758519000,
"latestOpenDate": 1716750120000,
"lockedFaction": "TR",
"unlocked": false,
"latestAlertInstanceId": "37753",
"latestAlertDurationMillSeconds": 0,
"latestAlertStartDate": 1716753119000,
"latestAlertEndDate": 1716758519000,
"territoryPercentageVS": 0,
"territoryPercentageTR": 1,
"territoryPercentageNC": 0,
"populationNC": -5,
"populationVS": -2,
"populationTR": -2,
"populationNSO": 0
},
"Indar": {
"latestCloseDate": 1716736439000,
"latestOpenDate": 1716720569000,
"lockedFaction": "NC",
"unlocked": false,
"latestAlertInstanceId": "37751",
"latestAlertDurationMillSeconds": 0,
"latestAlertStartDate": 1716731037000,
"latestAlertEndDate": 1716736438000,
"territoryPercentageVS": 0,
"territoryPercentageTR": 0,
"territoryPercentageNC": 1,
"populationNC": -1,
"populationVS": -3,
"populationTR": 0,
"populationNSO": 0
},
"Oshur": {
"latestCloseDate": 1716696778000,
"latestOpenDate": 1716673135000,
"lockedFaction": "VS",
"unlocked": false,
"latestAlertInstanceId": "37749",
"latestAlertDurationMillSeconds": 0,
"latestAlertStartDate": 1716694976000,
"latestAlertEndDate": 1716696777000,
"territoryPercentageVS": 1,
"territoryPercentageTR": 0,
"territoryPercentageNC": 0,
"populationNC": -1,
"populationVS": 0,
"populationTR": -1,
"populationNSO": 0
}
},
"total": 16,
"tr": 7,
"vs": 3,
"nso": 2,
"nc": 4
}
},
"serverOnlineStatus": {
"Jaeger": true,
"Soltech": true,
"Connery": true,
"Cobalt": true,
"Emerald": true,
"Miller": true
}
}
}
+2128
View File
File diff suppressed because it is too large Load Diff
+1152
View File
File diff suppressed because it is too large Load Diff
+736
View File
@@ -0,0 +1,736 @@
import requests
from PIL import Image
from PIL import ImageFilter
from PIL import ImageEnhance
from PIL import ImageDraw, ImageFont
from datetime import datetime, timedelta
import os
import json
from Player_Query import Character_Query
class Vechile_Character_Query():
#def Character_date(self, name):
async def Character_date(self, name):
url = "https://api.sunderer.games/census/character/search"
querystring = {"name": ""}
querystring["name"] = name
response = requests.request("GET", url, params=querystring)
response = response.json()
# print(response)
return response
#def Date_Rinse_common(self, date, num=13):
async def Date_Rinse_common(self, date, num=13):
# 加载图片
file_path = os.path.dirname(os.path.abspath(__file__))
icon_dir = os.path.join(file_path, "Vechile_query/download")
Source_dir = os.path.join(file_path, "Vechile_query/Source")
Player_query_Source_dir = os.path.join(file_path, "Charter_Sundy_Query")
screen1_dir = (
os.path.join(file_path, "Vechile_query/screen1")
)
screen2_dir = (
os.path.join(file_path, "Vechile_query/screen2")
)
bruh = "wrel.png"
by_path = "love.png"
ad_path = "ad_test.png"
botton_path = "上面的丁真.png"
Logo_path = "顶部LOGO.png"
lable_path = "ID框.png"
tr_path = "地球共和国.png"
vs_path = "瓦努主权国.png"
nc_path = "新联邦.png"
nso_path = "纳能特工.png"
level_path = "战斗等级底图.png"
asp1_path = "asp1.png"
asp2_path = "asp2.png"
asp3_path = "asp3.png"
online_path = "在线状态.png"
offline_path = "离线状态.png"
online_none_path = "无历史数据在线状态.png"
offline_none_path = "无历史数据离线状态.png"
money_path = "证书数量.png"
sol_path = "索泰克.png"
eme_path = "艾莫若德.png"
con_path = "康纳利.png"
cob_path = "柯伯特.png"
mil_path = "米勒.png"
other_path = "其他数据底图.png"
tr_botton_path = "地球共和国背景.png"
vs_botton_path = "瓦努主权国背景.png"
nc_botton_path = "新联邦背景.png"
nso_botton_path = "纳能特工背景.png"
message_path = '缩写含义.png'
screen_demo = "demo.png"
afd_path = 'afd.png'
box_path = "框框.png"
article_path = "条条.png"
up_path = "从低到高.png"
down_path = "从高到低.png"
judou_heavy = "judou-ui-cn-heavy.ttf"
judou_heavyit = "judou-ui-cn-heavyitalic.ttf"
judou_blod = "judou-bold.ttc"
judou_media = "judou-medium.ttc"
##
message = Image.open(os.path.join(
Source_dir, message_path)).convert("RGBA")
ad = Image.open(os.path.join(Source_dir, ad_path)).convert("RGBA")
by = Image.open(os.path.join(Source_dir, by_path)).convert("RGBA")
botton = Image.open(os.path.join(
Source_dir, botton_path)).convert("RGBA")
Logo = Image.open(os.path.join(Source_dir, Logo_path)).convert("RGBA")
lable = Image.open(os.path.join(
Source_dir, lable_path)).convert("RGBA")
tr_icon = Image.open(os.path.join(Source_dir, tr_path)).convert("RGBA")
vs_icon = Image.open(os.path.join(Source_dir, vs_path)).convert("RGBA")
nc_icon = Image.open(os.path.join(Source_dir, nc_path)).convert("RGBA")
nso_icon = Image.open(os.path.join(
Source_dir, nso_path)).convert("RGBA")
tr_botton = Image.open(os.path.join(
Source_dir, tr_botton_path)).convert("RGBA")
vs_botton = Image.open(os.path.join(
Source_dir, vs_botton_path)).convert("RGBA")
nc_botton = Image.open(os.path.join(
Source_dir, nc_botton_path)).convert("RGBA")
nso_botton = Image.open(os.path.join(
Source_dir, nso_botton_path)).convert("RGBA")
Soltech = Image.open(os.path.join(
Source_dir, sol_path)).convert("RGBA")
Miller = Image.open(os.path.join(Source_dir, mil_path)).convert("RGBA")
Cobalt = Image.open(os.path.join(Source_dir, cob_path)).convert("RGBA")
Connery = Image.open(os.path.join(
Source_dir, con_path)).convert("RGBA")
Emerald = Image.open(os.path.join(
Source_dir, eme_path)).convert("RGBA")
level_icon = Image.open(os.path.join(
Source_dir, level_path)).convert("RGBA")
asp1_icon = Image.open(os.path.join(
Source_dir, asp1_path)).convert("RGBA")
asp2_icon = Image.open(os.path.join(
Source_dir, asp2_path)).convert("RGBA")
asp3_icon = Image.open(os.path.join(
Source_dir, asp3_path)).convert("RGBA")
online = Image.open(os.path.join(
Source_dir, online_path)).convert("RGBA")
offline = Image.open(os.path.join(
Source_dir, offline_path)).convert("RGBA")
money_icon = Image.open(os.path.join(
Source_dir, money_path)).convert("RGBA")
other_icon = Image.open(os.path.join(
Source_dir, other_path)).convert("RGBA")
box = Image.open(os.path.join(Source_dir, box_path)).convert("RGBA")
article = Image.open(os.path.join(
Source_dir, article_path)).convert("RGBA")
up = Image.open(os.path.join(Source_dir, up_path)).convert("RGBA")
down = Image.open(os.path.join(Source_dir, down_path)).convert("RGBA")
afd = Image.open(os.path.join(Source_dir, afd_path)).convert("RGBA")
Title = ImageFont.truetype(
(os.path.join(Source_dir, judou_blod)),
88,
)
Numttf = ImageFont.truetype(
(os.path.join(Source_dir, judou_heavy)),
240,
)
No_ver_Name_ttf = ImageFont.truetype(
(os.path.join(Source_dir, judou_heavy)),
308,
)
Ver_NickName_ttf = ImageFont.truetype(
(os.path.join(Source_dir, judou_heavy)),
264,
)
Ver_ChartName_ttf = ImageFont.truetype(
(os.path.join(Source_dir, judou_heavy)),
88,
)
content = ImageFont.truetype(
(os.path.join(Source_dir, judou_blod)),
52,
)
status_time = ImageFont.truetype(
((os.path.join(Source_dir,judou_heavy))),
88,
)
text_lable = ImageFont.truetype(
(os.path.join(Source_dir, judou_heavy)),
24,
)
heavyit = ImageFont.truetype(
(os.path.join(Source_dir, judou_heavyit)),
88,
)
width, height = botton.size
logo_w, logo_h = Logo.size
logo_r, logo_g, logo_b, logo_a = Logo.split()
lable_r, lable_g, lable_b, lable_a = lable.split()
level_r, level_g, level_b, level_a = level_icon.split()
asp1_r, asp1_g, asp1_b, asp1_a = asp1_icon.split()
asp2_r, asp2_g, asp2_b, asp2_a = asp2_icon.split()
asp3_r, asp3_g, asp3_b, asp3_a = asp3_icon.split()
online_r, online_g, online_b, online_a = online.split()
offline_r, offline_g, offline_b, offline_a = offline.split()
tr_botton_r, tr_botton_g, tr_botton_b, tr_botton_a = tr_botton.split()
vs_botton_r, vs_botton_g, vs_botton_b, vs_botton_a = vs_botton.split()
nc_botton_r, nc_botton_g, nc_botton_b, nc_botton_a = nc_botton.split()
nso_botton_r, nso_botton_g, nso_botton_b, nso_botton_a = nso_botton.split()
Soltech_r, Soltech_g, Soltech_b, Soltech_a = Soltech.split()
Miller_r, Miller_g, Miller_b, Miller_a = Miller.split()
Cobalt_r, Cobalt_g, Cobalt_b, Cobalt_a = Cobalt.split()
Connery_r, Connery_g, Connery_b, Connery_a = Connery.split()
Emerald_r, Emerald_g, Emerald_b, Emerald_a = Emerald.split()
money_r, money_g, money_b, money_a = money_icon.split()
other_r, other_g, other_b, other_a = other_icon.split()
tr_r, tr_g, tr_b, tr_a = tr_icon.split()
vs_r, vs_g, vs_b, vs_a = vs_icon.split()
nc_r, nc_g, nc_b, nc_a = nc_icon.split()
nso_r, nso_g, nso_b, nso_a = nso_icon.split()
box_r, box_g, box_b, box_a = box.split()
article_r, article_g, article_b, article_a = article.split()
up_r, up_g, up_b, up_a = up.split()
down_r, down_g, down_b, down_a = down.split()
message_r, message_g, message_b, message_a = message.split()
ad_r, ad_g, ad_b, ad_a = ad.split()
by_r, by_g, by_b, by_a = by.split()
afd_r, afd_g, afd_b, afd_a = afd.split()
All_kill = "总击杀"
All_death = "总死亡"
All_KDR = "总KDR"
# 基础信息
Character_BasicDate = date["basicInfo"]
charactername = Character_BasicDate["characterFullName"]
outfitAlias = Character_BasicDate["outfitAlias"]
outfitName = Character_BasicDate["outfitName"]
factionId = Character_BasicDate["factionId"]
serverName = Character_BasicDate["worldName"]
money = str(Character_BasicDate["availableCertCount"])
battleRank = Character_BasicDate["battleRank"]
aspRank = Character_BasicDate["aspRank"]
FullName = Character_BasicDate["characterFullName"]
# Character_Server = Character_BasicDate['Server']
# Character_ = Character_BasicDate['']
asplevel = Character_BasicDate["aspRank"]
online = Character_BasicDate["online"]
All_kill_date = Character_BasicDate["kill"]
All_death_date = Character_BasicDate["death"]
All_KDR_date = "%.2f" % Character_BasicDate["kdr"]
All_kill = "总击杀"
All_death = "总死亡"
All_KDR = "总KDR"
if outfitName == None:
outfitName = ''
try:
title = str("[" + outfitAlias + "]" + " " + FullName)
except:
title = FullName
lv = str("Lv." + str(battleRank))
off = "已离线"
off_time = ""
on_time = ""
on = "已在线"
w_on_time, h_on_time = Title.getsize(on_time)
w_off_time, h_off_time = Title.getsize(off_time)
w_All_kill_date, h_All_kill_date = Title.getsize(str(All_kill_date))
w_All_death_date, h_All_death_date = Title.getsize(str(All_death_date))
w_All_KDR_date, h_All_KDR_date = Title.getsize(str(All_KDR_date))
w_outfitName, h_outfitName = content.getsize(str(outfitName))
date_common = Image.new("RGBA", (width, height), (0,124,212,100))
date_common.paste(botton, (0, 0))
#date_common.show()#上部数据
#判断是否认证
Sundy_auth = False
user_message = None
chart_msg = date['basicInfo']['characterFullName']
file_path_csv = os.path.join(os.path.dirname(__file__), r"csv/character.csv")
auth_dict = await Character_Query().csv_Verified_User(file_path_csv)#异步
if chart_msg in auth_dict.values():
Sundy_auth = True
matching_keys = [key for key, value in auth_dict.items() if value == chart_msg]
ver_chart_id = int(matching_keys[0])
csv_file_nickname = os.path.join(os.path.dirname(__file__), r"csv/nickname.csv")
nickname_csv = await Character_Query().read_csv_to_list(csv_file_nickname)
chart_list = await Character_Query().find_id(ver_chart_id,nickname_csv)
ver_charactername = chart_list[1]
if Sundy_auth == False:
Sundy_auth = False
chart_msg = chart_msg[0:3] + "**" + chart_msg[-2:]
Online_flag = date['basicInfo']['online']
lastLoginfo = date['latestSessionInfo']['latestLoginDate']
lastLogout = date['latestSessionInfo']['latestLogoutDate']
try:
if Online_flag == True :
logintimeline = (lastLoginfo)/1000
logintime = datetime.fromtimestamp(logintimeline)
formatted_time = logintime.strftime("%Y-%m-%d %H:%M:%S")
elif Online_flag == False :
Logouttimeline = (lastLogout)/1000
Logouttime = datetime.fromtimestamp(Logouttimeline)
formatted_time = Logouttime.strftime("%Y-%m-%d %H:%M:%S")
except:
formatted_time = '数据库无记录'
if Sundy_auth == False :#QQbot\Charter_Sundy_Query\步兵武器列表\状态\在线文字背景.png
Status_light = os.path.join(Player_query_Source_dir,'步兵武器列表/状态/在线圆点.png')
status_text = 'ONLINE NOW ' + formatted_time
BackGround_path = os.path.join(Player_query_Source_dir,'步兵武器列表/状态/在线文字背景.png')
color = (0,252,155)
else:
Status_light = os.path.join(Player_query_Source_dir,'步兵武器列表/状态/离线圆点.png')
status_text = 'OFFLINE At ' + formatted_time
BackGround_path = os.path.join(Player_query_Source_dir,'步兵武器列表/状态/离线文字背景.png')
color = (255,255,255)
light = Image.open(Status_light).convert("RGBA")
light_shadow = Image.open(BackGround_path).convert("RGBA")
w,h = status_time.getsize(status_text)
r,g,b,a = light.split()
date_common.paste(light,(2000-w-220,700+20),mask=a)
r,g,b,a = light_shadow.split()
date_common.paste(light_shadow,(2000-w-820,700-20),mask=a)
date_common_pic = ImageDraw.Draw(date_common)
date_common_pic.text(((2000-w-120),700),str(status_text),fill=(255,255,255),font=status_time)
if Sundy_auth == False :
w_tit,h_tit = No_ver_Name_ttf.getsize(chart_msg)
x_No_ver_Name = 2000 - w_tit -100
date_common_pic.text(
(x_No_ver_Name, 250),
chart_msg,
fill=(255,255,255),
font=No_ver_Name_ttf
)
else:
w_tit,h_tit = Ver_NickName_ttf.getsize(ver_charactername)
x_ver_nickName = 2000 - w_tit -100
date_common_pic.text(
(x_ver_nickName, 120),
ver_charactername,
fill=(255,255,255),
font=Ver_NickName_ttf
)
w_tit,h_tit = Ver_ChartName_ttf.getsize(chart_msg)
x_ver_nickName = 2000 - w_tit -100
date_common_pic.text(
(x_ver_nickName, 410),
chart_msg,
fill=(255,255,255),
font=Ver_ChartName_ttf
)
# 提取载具数据
Character_BattleData = date["battleData"]
# Character_Battle_weaponStatList
landVehicleData = Character_BattleData["vehicleData"]["landVehicleData"]["vehicleData"]
waterVehicleData = Character_BattleData["vehicleData"]["waterVehicleData"]["vehicleData"]
otherVehicleData = Character_BattleData["vehicleData"]["otherVehicleData"]["vehicleData"]
airVehicleData = Character_BattleData["vehicleData"]["airVehicleData"]["vehicleData"]
# 打开特定底图
screen1 = Image.open(os.path.join(
screen1_dir, screen_demo)).convert("RGBA")
screen2 = Image.open(os.path.join(
screen2_dir, screen_demo)).convert("RGBA")
w_screen1, h_screen1 = screen1.size
w_screen1r, w_screen1g, w_screen1b, w_screen1a = screen1.split()
# 筛选标题和横幅
text = "载具总览"
w_text, h_text = Title.getsize(text)
w_tiaotiao, h_tiaotiao = article.size
# 坐标数据
h_act = 40
hlist = []
for i in range(0, num):
hf = h_tiaotiao + h_screen1 * i - h_act * (i + 1)
hlist.append(hf)
# 计算总高度并生成新画布
h_scr = h_screen1 * num + h_tiaotiao - h_act * (num)
date_screen = Image.new("RGBA", (w_screen1, h_scr), (0, 124,212,100))
date_screen.paste(article, (0, 0), article_a)
date_screen.paste(down, (0, 0), down_a)
# 区别排列数据展示框
for i in range(0, num):
if i % 2 == 0:
if i == 0:
date_screen.paste(message, (0, hlist[i]), message_a)
else:
date_screen.paste(screen1, (0, hlist[i]), w_screen1a)
else:
date_screen.paste(screen2, (0, hlist[i]), w_screen1a)
# date_screen.paste(by, (0, hlist[-1]+h_screen1-h_act), by_a)
# 添加数据
date_screen_pic = ImageDraw.Draw(date_screen)
date_screen_pic.text(
(((w_screen1 - w_text) / 2), 50),
text,
fill=(0, 0, 0),
font=Title,
)
# date_screen.paste(by, (0, hlist[-1]+h_screen1-h_act), by_a)
# 敌前三的武器数据
# sorted_list = (sorted(Character_Battle_weaponStatList, key=lambda x: x['kill']))[-3:]
# sorted_list = Character_Battle_weaponStatList[:(num-1)]
sorted_list = await filtrate_common().vehicle_filtrate_common(Character_BattleData, factionId)
#await
# sorted_list = (sorted(sorted_list1, key=lambda x: x['kill']))
#sorted_list.insert(3, AD) 插入广告用
for i in range(0, len(sorted_list)):
kill = sorted_list[i]["kill"]
kps = sorted_list[i]["spk"]
hit = sorted_list[i]["hit"]
fire = sorted_list[i]["fire"]
accuracy = sorted_list[i]["accuracy"]
rdkill = sorted_list[i]["roadKill"]
hpk = "%.2f" % sorted_list[i]["hpk"] # 命中数量/击杀数量
playTime = int(((sorted_list[i]["playTime"])))
minutes, seconds = divmod(playTime, 60)
hours, minutes = divmod(minutes, 60)
days, hours = divmod(hours, 24)
dtime = f"{days}{hours}{minutes}{seconds}"
imageID = sorted_list[i]["imageId"]
name = sorted_list[i]["name"]
damage = (sorted_list[i]["damage"])/10000
dmg = (("%.2f" % damage) + 'W')
try:
icon = str(imageID + ".png")
except:
if i == 3:
icon = str('none.png')
else:
icon = str('wrel.png')
weapon_icondir = str(os.path.join(icon_dir, icon))
# 拆分名字
string_B = ""
try:
splitted = name.split(" ")
string_A = splitted[0] # 获取第一个部分
string_B = ''.join(str(x)
for x in splitted[1:]) # 获取第二个部分
except:
string_A = name
w_string_A, h_string_A = Title.getsize(str(string_A))
w_string_B, h_string_B = Title.getsize(str(string_B))
if w_string_A + w_string_B < 465:
string_A = name
string_B = ''
w_string_A, h_string_A = Title.getsize(str(string_A))
w_string_B, h_string_B = Title.getsize(str(string_B))
# 计算参数
try:
weapon = Image.open(weapon_icondir).convert("RGBA")
except:
weapon = Image.open(
str(os.path.join(Source_dir, bruh))).convert("RGBA")
weapon_r, weapon_g, weapon_b, weapon_a = weapon.split()
w_kill, h_kill = heavyit.getsize(str(kill))
w_death, h_death = Title.getsize(str(fire))
w_hsr, h_hsr = Title.getsize(str(hit))
w_accuracy, h_accuracy = Title.getsize(str(accuracy))
w_kdr, h_kdr = Title.getsize(str(kps))
w_kpm, h_kpm = Title.getsize(str(dmg))
w_hpk, h_hpk = Title.getsize(str(hpk))
w_ivi, h_ivi = Title.getsize(str(rdkill))
w_playTime, h_playTime = Title.getsize(str(dtime))
interval = 860
(x, y) = weapon.size
x_s = 400 # 定义缩小后的标准宽度
y_s = int(y * x_s / x) # 基于标准宽度计算缩小后的高度
weapon1 = weapon.resize((x_s, y_s), Image.ANTIALIAS)
r, g, b, a = weapon1.split()
if weapon.size == (128, 128):
date_screen.paste(
weapon1, (110, (360 + interval + interval * i)), a)
elif weapon.size == (400, 400):
date_screen.paste(
weapon1, (110, (360 + interval + interval * i)), a)
else:
date_screen.paste(
weapon1, (110, (460 + interval + interval * i)), a)
date_screen_pic.text(
(20, 150 + interval + interval * i),
str(i+1),
fill=(255, 255, 255), # 255, 87, 23
font=Numttf, # heavyit
)
date_screen_pic.text(
((850 + (370 - w_kill) / 2), 333 + interval + interval * i),
str(kill),
fill=(0, 0, 0), # 255, 87, 23
font=Title, # heavyit
)
date_screen_pic.text(
((850 + (370 - w_death) / 2), 475 + interval + interval * i),
str(fire),
fill=(0, 0, 0),
font=Title,
)
date_screen_pic.text(
((850 + (370 - w_hsr) / 2), 617 + interval + interval * i),
str(hit),
fill=(0, 0, 0),
font=Title,
)
date_screen_pic.text(
((850 + (370 - w_accuracy) / 2),
753 + interval + interval * i),
str(accuracy),
fill=(0, 0, 0),
font=Title,
)
date_screen_pic.text(
((1540 + (370 - w_kdr) / 2), 333 + interval + interval * i),
str(kps),
fill=(0, 0, 0),
font=Title,
)
date_screen_pic.text(
((1540 + (370 - w_kpm) / 2), 475 + interval + interval * i),
str(dmg),
fill=(0, 0, 0),
font=Title,
)
date_screen_pic.text(
((1540 + (370 - w_hpk) / 2), 617 + interval + interval * i),
str(hpk),
fill=(0, 0, 0),
font=Title,
)
date_screen_pic.text(
((1540 + (370 - w_ivi) / 2), 753 + interval + interval * i),
str(rdkill),
fill=(0, 0, 0),
font=Title,
)
if w_string_A > 465:
Title_s = ImageFont.truetype(
(os.path.join(Source_dir, judou_blod)),
64,
)
w_string_A, h_string_A = Title_s.getsize(str(string_A))
date_screen_pic.text(
((65 + (465 - w_string_A) / 2),
830 + interval + interval * i),
str(string_A),
fill=(0, 67, 48),
font=Title_s,
)
else:
date_screen_pic.text(
((65 + (465 - w_string_A) / 2),
830 + interval + interval * i),
str(string_A),
fill=(0, 67, 48),
font=Title,
)
if w_string_B > 465:
Title_s = ImageFont.truetype(
(os.path.join(Source_dir, judou_blod)),
64,
)
w_string_B, h_string_B = Title_s.getsize(str(string_B))
if w_string_B > 465:
None
else:
date_screen_pic.text(
((65 + (465 - w_string_B) / 2),
920 + interval + interval * i),
str(string_B),
fill=(0, 67, 48),
font=Title_s,
)
else:
date_screen_pic.text(
((65 + (465 - w_string_B) / 2),
920 + interval + interval * i),
str(string_B),
fill=(0, 67, 48),
font=Title,
)
date_screen_pic.text(
((1030 + (870 - w_playTime) / 2),
912 + interval + interval * i+3),
str(dtime),
fill=(0, 0, 0),
font=Title,
)
w_screen, h_screen = date_screen.size
h = height + h_screen
date1 = Image.new("RGBA", (w_screen1, h), (0,124,212,0))
sr, sg, sb, sa = date_screen.split()
te = h_screen + 1900
# 生成最终图
date1.paste(date_common, (0, 0))
date1.paste(date_screen, (0, 900), sa)
date1.paste(by, (0, te), by_a)
"""# 添加广告信息
w_afd, h_afd = afd.size
w_date1, h_date1 = date1.size
h_adlast = h_afd + h_date1
date2 = Image.new("RGBA", (w_date1, h_adlast), (4, 212, 155, 0))
dr, dg, db, da = date1.split()
date2.paste(date1, (0, 0), da)
date2.paste(afd, (0, h_date1))"""
# 保存
# date1.save('test.png')
w_date1, h_date1 = date1.size
date2 = date1.convert("RGB")
date2 = date2.resize((w_date1, h_date1), Image.ANTIALIAS)
filename = str(charactername) + '.jpg'
Output_dir = os.path.join(file_path, "Charter_Sundy_Query/Output")
output = os.path.join(Output_dir, filename)
date2.save(output, "JPEG", quality=70, subsampling=0)
return filename
# return date1
class filtrate_common():
#def txt_reader(self):
async def txt_reader(self):
with open("GGou7.txt", "r", encoding='gbk') as file:
lines = file.read().strip("'").strip('"')
lines = lines.replace("\n", "")
lines = lines.replace("\t", "")
lines = lines.strip("'")
lines = json.loads(lines)
# lines = lines.strip()
return lines
#def vehicle_filtrate_common(self, Character_BattleData, factionId):
async def vehicle_filtrate_common(self, Character_BattleData, factionId):
landVehicleData = Character_BattleData["vehicleData"]["landVehicleData"]["vehicleData"]
waterVehicleData = Character_BattleData["vehicleData"]["waterVehicleData"]["vehicleData"]
otherVehicleData = Character_BattleData["vehicleData"]["otherVehicleData"]["vehicleData"]
airVehicleData = Character_BattleData["vehicleData"]["airVehicleData"]["vehicleData"]
date_list = [landVehicleData, waterVehicleData,
otherVehicleData, airVehicleData]
nc_list = ["Reaver", "Vanguard", "Flash", "Harasser", "Sunderer", "Lightning",
"Corsair", "Valkyrie", "Liberator", "Galaxy", "Colossus", "Bastion Fleet Carrier", "Flash XS-1", "Drop Pod",]
vs_list = ["Scythe", "Magrider", "Flash", "Harasser", "Sunderer", "Lightning",
"Corsair", "Valkyrie", "Liberator", "Galaxy", "Colossus", "Bastion Fleet Carrier", "Flash XS-1", "Drop Pod",]
tr_list = ["Mosquito", "Prowler", "Flash", "Harasser", "Sunderer", "Lightning",
"Corsair", "Valkyrie", "Liberator", "Galaxy", "Colossus", "Bastion Fleet Carrier", "Flash XS-1", "Drop Pod",]
nso_list = ["Dervish", "Chimera", "Flash", "Harasser", "Sunderer", "Lightning",
"Corsair", "Valkyrie", "Liberator", "Galaxy", "Colossus", "Bastion Fleet Carrier", "Flash XS-1", "Drop Pod",]
text = []
output = []
if factionId == "1":
for b in range(0, len(date_list)):
for i in range(0, len(date_list[b])):
mid = date_list[b][i]
partial_dict = {k: mid[k] for k in list(mid.keys())[:-1]}
text.append(partial_dict)
test = [item for item in text if item["engName"] in vs_list]
def custom_order_index(item):
return vs_list.index(item["engName"])
sorted_list = sorted(test, key=custom_order_index)
# output.append(test)
elif factionId == "2":
for b in range(0, len(date_list)):
for i in range(0, len(date_list[b])):
mid = date_list[b][i]
partial_dict = {k: mid[k] for k in list(mid.keys())[:-1]}
text.append(partial_dict)
test = [item for item in text if item["engName"] in nc_list]
def custom_order_index(item):
return nc_list.index(item["engName"])
sorted_list = sorted(test, key=custom_order_index)
elif factionId == "2":
for b in range(0, len(date_list)):
for i in range(0, len(date_list[b])):
mid = date_list[b][i]
partial_dict = {k: mid[k] for k in list(mid.keys())[:-1]}
text.append(partial_dict)
test = [item for item in text if item["engName"] in tr_list]
def custom_order_index(item):
return tr_list.index(item["engName"])
sorted_list = sorted(test, key=custom_order_index)
# output.append(test)
else:
for b in range(0, len(date_list)):
for i in range(0, len(date_list[b])):
mid = date_list[b][i]
partial_dict = {k: mid[k] for k in list(mid.keys())[:-1]}
text.append(partial_dict)
test = [item for item in text if item["engName"] in nso_list]
# output.append(test)
def custom_order_index(item):
return nso_list.index(item["engName"])
sorted_list = sorted(test, key=custom_order_index)
# return sorted_list
return sorted_list
"""name = "GGou7"
date = Vechile_await Character_Query().Character_date(name)
# date = Vechile_await Character_Query().txt_reader()
start = Vechile_await Character_Query().Date_Rinse_common(date)
print(start)"""
View File
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+399
View File
@@ -0,0 +1,399 @@
2026-03-28 13:24:04,711 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-28 13:24:04,714 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-28 13:24:09,718 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-28 13:24:09,719 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-28 13:24:09,719 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-28 13:24:09,871 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-28 13:24:09,960 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-28 13:24:09,960 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-28 13:54:09,900 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-28 13:54:09,901 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-28 13:54:14,907 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-28 13:54:14,907 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-28 13:54:14,908 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-28 13:54:15,037 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-28 13:54:15,128 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-28 13:54:15,129 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-28 14:16:28,418 [INFO] (robot.py:65)update_access_token [botpy] access_token expires_in 6245
2026-03-28 14:16:30,885 [INFO] (ru2n.py:776)on_group_at_message_create {'id': 'ROBOT1.0_DzDSqsgzBVjRlZTzYsAVrThorTrcffp2PnBq8LrHzpOyrc8PX-OiRezRqZyKCq3ZGW0zXhQTpMcDCskmHet.oQ!!', 'timestamp': '2026-03-28T14:16:30+08:00', 'ext_info': {'ref_idx': 'REFIDX_QlwuQ7pXlyCdvyiJQKnjWMtG81ovPjw88HwjHppK6Gc='}}
2026-03-28 14:16:43,035 [INFO] (ru2n.py:432)on_group_at_message_create {'id': 'ROBOT1.0_DzDSqsgzBVjRlZTzYsAVrXLwX851CW0k9e4karrUXBaXTnLo4Rmrv9rT5QJEpiIIZRj-d3mgTpZveQ5c5SEUKw!!', 'timestamp': '2026-03-28T14:16:42+08:00', 'ext_info': {'ref_idx': 'REFIDX_4GpX71ISPP9J8VaK+m2tustG81ovPjw88HwjHppK6Gc='}}
2026-03-28 14:24:15,061 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-28 14:24:15,063 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-28 14:24:20,066 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-28 14:24:20,067 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-28 14:24:20,067 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-28 14:24:20,255 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-28 14:24:20,379 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-28 14:24:20,379 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-28 14:54:20,263 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-28 14:54:20,265 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-28 14:54:25,270 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-28 14:54:25,270 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-28 14:54:25,270 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-28 14:54:25,412 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-28 14:54:25,499 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-28 14:54:25,499 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-28 15:24:25,397 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-28 15:24:25,398 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-28 15:24:30,402 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-28 15:24:30,402 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-28 15:24:30,402 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-28 15:24:30,565 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-28 15:24:30,670 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-28 15:24:30,670 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-28 15:54:30,564 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-28 15:54:30,566 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-28 15:54:35,570 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-28 15:54:35,571 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-28 15:54:35,571 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-28 15:54:35,723 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-28 15:54:35,837 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-28 15:54:35,837 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-28 16:24:35,735 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-28 16:24:35,737 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-28 16:24:40,738 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-28 16:24:40,739 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-28 16:24:40,739 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-28 16:24:40,886 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-28 16:24:41,396 [INFO] (robot.py:65)update_access_token [botpy] access_token expires_in 5752
2026-03-28 16:24:41,503 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-28 16:24:41,504 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-28 16:54:40,896 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-28 16:54:40,897 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-28 16:54:45,898 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-28 16:54:45,899 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-28 16:54:45,899 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-28 16:54:46,078 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-28 16:54:46,173 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-28 16:54:46,173 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-28 17:24:46,048 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-28 17:24:46,049 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-28 17:24:51,054 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-28 17:24:51,055 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-28 17:24:51,055 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-28 17:24:51,223 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-28 17:24:51,306 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-28 17:24:51,306 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-28 17:54:51,241 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-28 17:54:51,242 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-28 17:54:56,246 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-28 17:54:56,246 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-28 17:54:56,246 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-28 17:54:56,405 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-28 17:54:56,493 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-28 17:54:56,493 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-28 18:24:56,437 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-28 18:24:56,439 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-28 18:25:01,442 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-28 18:25:01,442 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-28 18:25:01,443 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-28 18:25:01,608 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-28 18:25:01,955 [INFO] (robot.py:65)update_access_token [botpy] access_token expires_in 5732
2026-03-28 18:25:02,106 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-28 18:25:02,107 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-28 18:55:01,620 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-28 18:55:01,622 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-28 18:55:06,627 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-28 18:55:06,627 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-28 18:55:06,627 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-28 18:55:06,787 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-28 18:55:06,873 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-28 18:55:06,873 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-28 19:25:06,773 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-28 19:25:06,774 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-28 19:25:11,779 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-28 19:25:11,779 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-28 19:25:11,779 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-28 19:25:11,955 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-28 19:25:12,061 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-28 19:25:12,062 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-28 19:43:10,957 [INFO] (ru2n.py:432)on_group_at_message_create {'id': 'ROBOT1.0_2iXIKOI6IkwO1VECMuNKXkSaZgoYHbwkTu1YPwCJOcOfEmr2wdDz.fK1UPqZbQO1F7NNy0GhqRoLQ0PVdHmjiw!!', 'timestamp': '2026-03-28T19:43:09+08:00', 'ext_info': {'ref_idx': 'REFIDX_BdvAY/wccdFjGbEVVhE7Jg=='}}
2026-03-28 19:55:11,956 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-28 19:55:11,956 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-28 19:55:16,959 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-28 19:55:16,960 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-28 19:55:16,960 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-28 19:55:17,124 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-28 19:55:17,238 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-28 19:55:17,238 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-28 20:25:17,148 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-28 20:25:17,149 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-28 20:25:22,154 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-28 20:25:22,154 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-28 20:25:22,154 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-28 20:25:22,303 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-28 20:25:22,524 [INFO] (robot.py:65)update_access_token [botpy] access_token expires_in 5711
2026-03-28 20:25:22,627 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-28 20:25:22,628 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-28 20:55:22,318 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-28 20:55:22,318 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-28 20:55:27,322 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-28 20:55:27,323 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-28 20:55:27,323 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-28 20:55:27,458 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-28 20:55:27,534 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-28 20:55:27,534 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-28 21:25:27,452 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-28 21:25:27,453 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-28 21:25:32,457 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-28 21:25:32,458 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-28 21:25:32,458 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-28 21:25:32,629 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-28 21:25:32,738 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-28 21:25:32,738 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-28 21:55:32,633 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-28 21:55:32,633 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-28 21:55:37,637 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-28 21:55:37,639 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-28 21:55:37,639 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-28 21:55:37,813 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-28 21:55:37,925 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-28 21:55:37,925 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-28 22:25:37,809 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-28 22:25:37,810 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-28 22:25:42,814 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-28 22:25:42,815 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-28 22:25:42,815 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-28 22:25:42,988 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-28 22:25:43,301 [INFO] (robot.py:65)update_access_token [botpy] access_token expires_in 5691
2026-03-28 22:25:43,396 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-28 22:25:43,396 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-28 22:55:42,988 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-28 22:55:42,989 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-28 22:55:47,991 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-28 22:55:47,992 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-28 22:55:47,992 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-28 22:55:48,358 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-28 22:55:48,472 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-28 22:55:48,472 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-28 23:25:48,356 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-28 23:25:48,357 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-28 23:25:53,362 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-28 23:25:53,364 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-28 23:25:53,364 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-28 23:25:53,517 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-28 23:25:53,610 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-28 23:25:53,610 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-28 23:55:53,509 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-28 23:55:53,510 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-28 23:55:58,514 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-28 23:55:58,515 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-28 23:55:58,515 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-28 23:55:58,675 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-28 23:55:58,778 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-28 23:55:58,778 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-29 00:25:58,684 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-29 00:25:58,685 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-29 00:26:03,689 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-29 00:26:03,690 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-29 00:26:03,690 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-29 00:26:03,845 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-29 00:26:04,168 [INFO] (robot.py:65)update_access_token [botpy] access_token expires_in 5670
2026-03-29 00:26:04,274 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-29 00:26:04,274 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-29 00:56:03,865 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-29 00:56:03,866 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-29 00:56:08,870 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-29 00:56:08,870 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-29 00:56:08,870 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-29 00:56:09,047 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-29 00:56:09,211 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-29 00:56:09,211 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-29 01:26:09,053 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-29 01:26:09,054 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-29 01:26:14,058 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-29 01:26:14,058 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-29 01:26:14,059 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-29 01:26:14,238 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-29 01:26:14,335 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-29 01:26:14,335 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-29 01:56:14,206 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-29 01:56:14,206 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-29 01:56:19,210 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-29 01:56:19,210 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-29 01:56:19,210 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-29 01:56:19,377 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-29 01:56:19,464 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-29 01:56:19,464 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-29 02:26:19,366 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-29 02:26:19,367 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-29 02:26:24,372 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-29 02:26:24,372 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-29 02:26:24,372 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-29 02:26:24,548 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-29 02:26:24,837 [INFO] (robot.py:65)update_access_token [botpy] access_token expires_in 5649
2026-03-29 02:26:24,925 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-29 02:26:24,925 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-29 02:56:24,566 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-29 02:56:24,567 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-29 02:56:29,570 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-29 02:56:29,571 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-29 02:56:29,571 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-29 02:56:29,747 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-29 02:56:29,832 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-29 02:56:29,832 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-29 03:26:29,758 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-29 03:26:29,759 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-29 03:26:34,763 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-29 03:26:34,764 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-29 03:26:34,764 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-29 03:26:34,908 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-29 03:26:34,999 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-29 03:26:35,000 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-29 03:56:34,921 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-29 03:56:34,922 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-29 03:56:39,927 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-29 03:56:39,927 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-29 03:56:39,927 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-29 03:56:40,085 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-29 03:56:40,185 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-29 03:56:40,185 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-29 04:26:40,094 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-29 04:26:40,095 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-29 04:26:45,098 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-29 04:26:45,098 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-29 04:26:45,098 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-29 04:26:45,281 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-29 04:26:45,581 [INFO] (robot.py:65)update_access_token [botpy] access_token expires_in 5628
2026-03-29 04:26:45,673 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-29 04:26:45,674 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-29 04:56:45,287 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-29 04:56:45,287 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-29 04:56:50,290 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-29 04:56:50,291 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-29 04:56:50,291 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-29 04:56:50,468 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-29 04:56:50,563 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-29 04:56:50,563 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-29 05:26:50,471 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-29 05:26:50,472 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-29 05:26:55,478 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-29 05:26:55,479 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-29 05:26:55,480 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-29 05:26:55,660 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-29 05:26:55,747 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-29 05:26:55,748 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-29 05:56:55,661 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-29 05:56:55,662 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-29 05:57:00,666 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-29 05:57:00,666 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-29 05:57:00,667 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-29 05:57:00,848 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-29 05:57:00,927 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-29 05:57:00,928 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-29 06:27:00,840 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-29 06:27:00,841 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-29 06:27:05,846 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-29 06:27:05,846 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-29 06:27:05,846 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-29 06:27:06,021 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-29 06:27:06,328 [INFO] (robot.py:65)update_access_token [botpy] access_token expires_in 5607
2026-03-29 06:27:06,417 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-29 06:27:06,417 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-29 06:57:06,044 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-29 06:57:06,045 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-29 06:57:11,049 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-29 06:57:11,049 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-29 06:57:11,050 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-29 06:57:11,261 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-29 06:57:11,339 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-29 06:57:11,339 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-29 07:27:11,255 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-29 07:27:11,256 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-29 07:27:16,261 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-29 07:27:16,262 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-29 07:27:16,262 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-29 07:27:16,411 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-29 07:27:16,519 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-29 07:27:16,519 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-29 07:57:16,421 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-29 07:57:16,422 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-29 07:57:21,424 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-29 07:57:21,425 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-29 07:57:21,425 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-29 07:57:21,572 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-29 07:57:21,656 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-29 07:57:21,657 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-29 08:27:21,572 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-29 08:27:21,573 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-29 08:27:26,578 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-29 08:27:26,578 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-29 08:27:26,579 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-29 08:27:26,799 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-29 08:27:27,123 [INFO] (robot.py:65)update_access_token [botpy] access_token expires_in 5587
2026-03-29 08:27:27,218 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-29 08:27:27,218 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-29 08:57:26,803 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-29 08:57:26,804 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-29 08:57:31,806 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-29 08:57:31,806 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-29 08:57:31,806 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-29 08:57:31,953 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-29 08:57:32,057 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-29 08:57:32,057 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-29 09:27:31,954 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-29 09:27:31,955 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-29 09:27:36,960 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-29 09:27:36,960 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-29 09:27:36,960 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-29 09:27:37,111 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-29 09:27:37,213 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-29 09:27:37,213 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-29 09:57:37,094 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-29 09:57:37,095 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-29 09:57:42,100 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-29 09:57:42,100 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-29 09:57:42,100 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-29 09:57:42,267 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-29 09:57:42,361 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-29 09:57:42,361 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-29 10:27:42,291 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-29 10:27:42,292 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-29 10:27:47,297 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-29 10:27:47,297 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-29 10:27:47,298 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-29 10:27:47,435 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-29 10:27:47,782 [INFO] (robot.py:65)update_access_token [botpy] access_token expires_in 5566
2026-03-29 10:27:47,892 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-29 10:27:47,892 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-29 10:57:47,430 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-29 10:57:47,431 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-29 10:57:52,434 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-29 10:57:52,434 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-29 10:57:52,434 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-29 10:57:52,590 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-29 10:57:52,692 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-29 10:57:52,692 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-29 11:27:52,564 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-29 11:27:52,565 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-29 11:27:57,568 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-29 11:27:57,569 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-29 11:27:57,569 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-29 11:27:57,701 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-29 11:27:57,806 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-29 11:27:57,807 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-29 11:57:57,722 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-29 11:57:57,723 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-29 11:58:02,728 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-29 11:58:02,729 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-29 11:58:02,729 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-29 11:58:02,909 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-29 11:58:03,006 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-29 11:58:03,006 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-29 12:28:02,911 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-29 12:28:02,912 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-29 12:28:07,914 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-29 12:28:07,915 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-29 12:28:07,916 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-29 12:28:08,067 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-29 12:28:08,392 [INFO] (robot.py:65)update_access_token [botpy] access_token expires_in 5545
2026-03-29 12:28:08,478 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-29 12:28:08,478 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-29 12:58:08,071 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-29 12:58:08,072 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-29 12:58:13,075 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-29 12:58:13,076 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-29 12:58:13,076 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-29 12:58:13,238 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-29 12:58:13,319 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-29 12:58:13,319 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
+396
View File
@@ -0,0 +1,396 @@
2026-03-29 13:28:13,252 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-29 13:28:13,255 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-29 13:28:18,258 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-29 13:28:18,259 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-29 13:28:18,259 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-29 13:28:18,404 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-29 13:28:18,511 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-29 13:28:18,511 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-29 13:58:18,405 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-29 13:58:18,406 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-29 13:58:23,410 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-29 13:58:23,410 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-29 13:58:23,410 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-29 13:58:23,546 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-29 13:58:23,666 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-29 13:58:23,667 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-29 14:28:23,578 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-29 14:28:23,580 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-29 14:28:28,584 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-29 14:28:28,585 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-29 14:28:28,585 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-29 14:28:28,731 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-29 14:28:29,096 [INFO] (robot.py:65)update_access_token [botpy] access_token expires_in 5525
2026-03-29 14:28:29,235 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-29 14:28:29,235 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-29 14:58:28,733 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-29 14:58:28,735 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-29 14:58:33,737 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-29 14:58:33,738 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-29 14:58:33,738 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-29 14:58:33,972 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-29 14:58:34,068 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-29 14:58:34,069 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-29 15:28:33,949 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-29 15:28:33,950 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-29 15:28:38,954 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-29 15:28:38,954 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-29 15:28:38,954 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-29 15:28:39,090 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-29 15:28:39,178 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-29 15:28:39,178 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-29 15:58:39,108 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-29 15:58:39,108 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-29 15:58:44,113 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-29 15:58:44,113 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-29 15:58:44,113 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-29 15:58:44,246 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-29 15:58:44,418 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-29 15:58:44,418 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-29 16:28:44,258 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-29 16:28:44,259 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-29 16:28:49,261 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-29 16:28:49,262 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-29 16:28:49,262 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-29 16:28:49,438 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-29 16:28:49,832 [INFO] (robot.py:65)update_access_token [botpy] access_token expires_in 5504
2026-03-29 16:28:49,928 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-29 16:28:49,928 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-29 16:58:49,435 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-29 16:58:49,436 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-29 16:58:54,446 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-29 16:58:54,447 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-29 16:58:54,447 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-29 16:58:54,601 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-29 16:58:54,701 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-29 16:58:54,701 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-29 17:28:54,620 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-29 17:28:54,621 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-29 17:28:59,627 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-29 17:28:59,628 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-29 17:28:59,628 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-29 17:28:59,799 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-29 17:28:59,887 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-29 17:28:59,887 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-29 17:58:59,795 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-29 17:58:59,796 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-29 17:59:04,800 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-29 17:59:04,800 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-29 17:59:04,800 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-29 17:59:04,969 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-29 17:59:05,078 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-29 17:59:05,078 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-29 18:29:04,937 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-29 18:29:04,938 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-29 18:29:09,941 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-29 18:29:09,942 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-29 18:29:09,942 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-29 18:29:10,119 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-29 18:29:10,368 [INFO] (robot.py:65)update_access_token [botpy] access_token expires_in 5483
2026-03-29 18:29:10,471 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-29 18:29:10,471 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-29 18:59:10,162 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-29 18:59:10,163 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-29 18:59:15,166 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-29 18:59:15,166 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-29 18:59:15,167 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-29 18:59:15,382 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-29 18:59:15,477 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-29 18:59:15,477 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-29 19:29:15,360 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-29 19:29:15,361 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-29 19:29:20,365 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-29 19:29:20,366 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-29 19:29:20,366 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-29 19:29:20,547 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-29 19:29:20,643 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-29 19:29:20,644 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-29 19:59:20,535 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-29 19:59:20,536 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-29 19:59:25,538 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-29 19:59:25,538 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-29 19:59:25,538 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-29 19:59:25,691 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-29 19:59:25,788 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-29 19:59:25,788 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-29 20:29:25,707 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-29 20:29:25,708 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-29 20:29:30,712 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-29 20:29:30,713 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-29 20:29:30,713 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-29 20:29:30,868 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-29 20:29:31,196 [INFO] (robot.py:65)update_access_token [botpy] access_token expires_in 5463
2026-03-29 20:29:31,308 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-29 20:29:31,308 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-29 20:59:30,880 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-29 20:59:30,880 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-29 20:59:35,884 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-29 20:59:35,885 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-29 20:59:35,885 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-29 20:59:36,058 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-29 20:59:36,158 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-29 20:59:36,158 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-29 21:29:36,065 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-29 21:29:36,066 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-29 21:29:41,071 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-29 21:29:41,071 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-29 21:29:41,071 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-29 21:29:41,234 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-29 21:29:41,330 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-29 21:29:41,330 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-29 21:59:41,220 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-29 21:59:41,221 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-29 21:59:46,225 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-29 21:59:46,226 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-29 21:59:46,226 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-29 21:59:46,376 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-29 21:59:46,505 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-29 21:59:46,506 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-29 22:29:46,361 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-29 22:29:46,362 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-29 22:29:51,365 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-29 22:29:51,366 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-29 22:29:51,366 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-29 22:29:51,518 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-29 22:29:51,845 [INFO] (robot.py:65)update_access_token [botpy] access_token expires_in 5442
2026-03-29 22:29:51,957 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-29 22:29:51,958 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-29 22:59:51,519 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-29 22:59:51,520 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-29 22:59:56,522 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-29 22:59:56,524 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-29 22:59:56,524 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-29 22:59:56,703 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-29 22:59:56,815 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-29 22:59:56,815 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-29 23:29:56,739 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-29 23:29:56,739 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-29 23:30:01,743 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-29 23:30:01,744 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-29 23:30:01,744 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-29 23:30:01,902 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-29 23:30:02,070 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-29 23:30:02,071 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-30 00:00:01,880 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-30 00:00:01,881 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-30 00:00:06,885 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-30 00:00:06,886 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-30 00:00:06,886 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-30 00:00:07,060 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-30 00:00:07,154 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-30 00:00:07,154 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-30 00:30:07,077 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-30 00:30:07,078 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-30 00:30:12,082 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-30 00:30:12,083 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-30 00:30:12,084 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-30 00:30:12,242 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-30 00:30:12,585 [INFO] (robot.py:65)update_access_token [botpy] access_token expires_in 5419
2026-03-30 00:30:12,690 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-30 00:30:12,690 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-30 01:00:12,249 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-30 01:00:12,250 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-30 01:00:17,252 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-30 01:00:17,253 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-30 01:00:17,253 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-30 01:00:17,427 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-30 01:00:17,552 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-30 01:00:17,552 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-30 01:30:17,423 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-30 01:30:17,424 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-30 01:30:22,429 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-30 01:30:22,430 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-30 01:30:22,430 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-30 01:30:22,598 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-30 01:30:22,686 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-30 01:30:22,686 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-30 02:00:22,600 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-30 02:00:22,601 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-30 02:00:27,606 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-30 02:00:27,606 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-30 02:00:27,606 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-30 02:00:27,773 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-30 02:00:27,868 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-30 02:00:27,868 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-30 02:30:27,790 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-30 02:30:27,790 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-30 02:30:32,792 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-30 02:30:32,792 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-30 02:30:32,792 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-30 02:30:32,940 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-30 02:30:33,624 [INFO] (robot.py:65)update_access_token [botpy] access_token expires_in 5400
2026-03-30 02:30:33,721 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-30 02:30:33,721 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-30 03:00:32,929 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-30 03:00:32,930 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-30 03:00:37,932 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-30 03:00:37,933 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-30 03:00:37,933 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-30 03:00:38,098 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-30 03:00:38,180 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-30 03:00:38,180 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-30 03:30:38,088 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-30 03:30:38,089 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-30 03:30:43,094 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-30 03:30:43,095 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-30 03:30:43,095 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-30 03:30:43,263 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-30 03:30:43,396 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-30 03:30:43,397 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-30 04:00:43,309 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-30 04:00:43,310 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-30 04:00:48,314 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-30 04:00:48,314 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-30 04:00:48,314 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-30 04:00:48,484 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-30 04:00:48,718 [INFO] (robot.py:65)update_access_token [botpy] access_token expires_in 7185
2026-03-30 04:00:48,801 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-30 04:00:48,802 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-30 04:30:48,506 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-30 04:30:48,507 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-30 04:30:53,511 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-30 04:30:53,512 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-30 04:30:53,512 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-30 04:30:53,678 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-30 04:30:53,766 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-30 04:30:53,766 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-30 05:00:53,637 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-30 05:00:53,638 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-30 05:00:58,642 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-30 05:00:58,642 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-30 05:00:58,642 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-30 05:00:58,824 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-30 05:00:58,930 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-30 05:00:58,930 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-30 05:30:58,814 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-30 05:30:58,815 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-30 05:31:03,818 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-30 05:31:03,818 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-30 05:31:03,818 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-30 05:31:03,972 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-30 05:31:04,051 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-30 05:31:04,051 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-30 06:01:03,986 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-30 06:01:03,986 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-30 06:01:08,989 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-30 06:01:08,989 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-30 06:01:08,989 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-30 06:01:09,196 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-30 06:01:09,450 [INFO] (robot.py:65)update_access_token [botpy] access_token expires_in 7164
2026-03-30 06:01:09,542 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-30 06:01:09,543 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-30 06:31:09,217 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-30 06:31:09,218 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-30 06:31:14,222 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-30 06:31:14,223 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-30 06:31:14,223 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-30 06:31:14,410 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-30 06:31:14,509 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-30 06:31:14,509 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-30 07:01:14,365 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-30 07:01:14,366 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-30 07:01:19,369 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-30 07:01:19,370 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-30 07:01:19,370 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-30 07:01:19,511 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-30 07:01:19,605 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-30 07:01:19,605 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-30 07:31:19,522 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-30 07:31:19,523 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-30 07:31:24,526 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-30 07:31:24,526 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-30 07:31:24,526 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-30 07:31:24,701 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-30 07:31:24,849 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-30 07:31:24,849 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-30 08:01:24,722 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-30 08:01:24,723 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-30 08:01:29,726 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-30 08:01:29,727 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-30 08:01:29,727 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-30 08:01:29,892 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-30 08:01:30,103 [INFO] (robot.py:65)update_access_token [botpy] access_token expires_in 7144
2026-03-30 08:01:30,204 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-30 08:01:30,205 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-30 08:31:29,872 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-30 08:31:29,873 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-30 08:31:34,878 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-30 08:31:34,879 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-30 08:31:34,879 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-30 08:31:35,030 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-30 08:31:35,122 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-30 08:31:35,123 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-30 09:01:35,045 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-30 09:01:35,046 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-30 09:01:40,050 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-30 09:01:40,051 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-30 09:01:40,051 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-30 09:01:40,190 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-30 09:01:40,288 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-30 09:01:40,288 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-30 09:31:40,198 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-30 09:31:40,199 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-30 09:31:45,204 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-30 09:31:45,204 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-30 09:31:45,204 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-30 09:31:45,379 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-30 09:31:45,482 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-30 09:31:45,483 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-30 10:01:45,611 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-30 10:01:45,612 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-30 10:01:50,614 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-30 10:01:50,614 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-30 10:01:50,614 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-30 10:01:50,801 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-30 10:01:51,016 [INFO] (robot.py:65)update_access_token [botpy] access_token expires_in 7123
2026-03-30 10:01:51,125 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-30 10:01:51,126 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-30 10:31:50,796 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-30 10:31:50,797 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-30 10:31:55,802 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-30 10:31:55,803 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-30 10:31:55,803 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-30 10:31:56,038 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-30 10:31:56,135 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-30 10:31:56,135 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-30 11:01:56,030 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-30 11:01:56,031 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-30 11:02:01,034 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-30 11:02:01,035 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-30 11:02:01,035 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-30 11:02:01,188 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-30 11:02:01,305 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-30 11:02:01,305 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-30 11:32:01,220 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-30 11:32:01,221 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-30 11:32:06,222 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-30 11:32:06,223 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-30 11:32:06,223 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-30 11:32:06,394 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-30 11:32:06,509 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-30 11:32:06,510 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-30 12:02:06,409 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-30 12:02:06,410 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-30 12:02:11,414 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-30 12:02:11,414 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-30 12:02:11,414 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-30 12:02:11,586 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-30 12:02:11,817 [INFO] (robot.py:65)update_access_token [botpy] access_token expires_in 7102
2026-03-30 12:02:11,919 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-30 12:02:11,919 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-30 12:32:11,578 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-30 12:32:11,579 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-30 12:32:16,583 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-30 12:32:16,583 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-30 12:32:16,583 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-30 12:32:16,728 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-30 12:32:16,823 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-30 12:32:16,824 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-30 13:02:16,721 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-30 13:02:16,722 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-30 13:02:21,727 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-30 13:02:21,728 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-30 13:02:21,728 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-30 13:02:21,889 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-30 13:02:21,974 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-30 13:02:21,974 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
+259
View File
@@ -0,0 +1,259 @@
2026-03-30 13:32:21,896 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-30 13:32:21,899 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-30 13:32:26,902 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-30 13:32:26,902 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-30 13:32:26,902 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-30 13:32:27,082 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-30 13:32:27,175 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-30 13:32:27,175 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-30 14:02:27,095 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-30 14:02:27,096 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-30 14:02:32,100 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-30 14:02:32,101 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-30 14:02:32,101 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-30 14:02:32,312 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-30 14:02:32,616 [INFO] (robot.py:65)update_access_token [botpy] access_token expires_in 7081
2026-03-30 14:02:32,709 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-30 14:02:32,709 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-30 14:32:32,310 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-30 14:32:32,311 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-30 14:32:37,314 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-30 14:32:37,314 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-30 14:32:37,314 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-30 14:32:37,469 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-30 14:32:37,563 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-30 14:32:37,563 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-30 15:02:37,448 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-30 15:02:37,449 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-30 15:02:42,453 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-30 15:02:42,454 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-30 15:02:42,454 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-30 15:02:42,580 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-30 15:02:42,659 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-30 15:02:42,660 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-30 15:32:42,575 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-30 15:32:42,576 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-30 15:32:47,580 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-30 15:32:47,581 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-30 15:32:47,581 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-30 15:32:47,737 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-30 15:32:47,835 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-30 15:32:47,835 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-30 16:02:47,780 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-30 16:02:47,781 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-30 16:02:52,786 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-30 16:02:52,786 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-30 16:02:52,786 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-30 16:02:52,950 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-30 16:02:53,182 [INFO] (robot.py:65)update_access_token [botpy] access_token expires_in 7012
2026-03-30 16:02:53,284 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-30 16:02:53,284 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-30 16:32:52,954 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-30 16:32:52,955 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-30 16:32:57,958 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-30 16:32:57,958 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-30 16:32:57,958 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-30 16:32:58,122 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-30 16:32:58,253 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-30 16:32:58,254 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-30 17:02:58,129 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-30 17:02:58,130 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-30 17:03:03,132 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-30 17:03:03,133 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-30 17:03:03,133 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-30 17:03:03,302 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-30 17:03:03,402 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-30 17:03:03,402 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-30 17:33:03,298 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-30 17:33:03,299 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-30 17:33:08,301 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-30 17:33:08,302 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-30 17:33:08,302 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-30 17:33:08,468 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-30 17:33:08,564 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-30 17:33:08,564 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-30 18:03:08,476 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-30 18:03:08,477 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-30 18:03:13,482 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-30 18:03:13,482 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-30 18:03:13,482 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-30 18:03:13,650 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-30 18:03:13,867 [INFO] (robot.py:65)update_access_token [botpy] access_token expires_in 7040
2026-03-30 18:03:13,983 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-30 18:03:13,983 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-30 18:33:13,653 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-30 18:33:13,654 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-30 18:33:18,656 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-30 18:33:18,656 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-30 18:33:18,656 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-30 18:33:18,785 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-30 18:33:19,152 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-30 18:33:19,152 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-30 19:03:18,795 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-30 19:03:18,795 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-30 19:03:23,800 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-30 19:03:23,801 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-30 19:03:23,801 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-30 19:03:23,997 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-30 19:03:24,089 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-30 19:03:24,089 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-30 19:33:24,013 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-30 19:33:24,015 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-30 19:33:29,018 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-30 19:33:29,018 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-30 19:33:29,018 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-30 19:33:29,166 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-30 19:33:29,264 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-30 19:33:29,265 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-30 20:03:29,166 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-30 20:03:29,167 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-30 20:03:34,170 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-30 20:03:34,170 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-30 20:03:34,170 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-30 20:03:34,355 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-30 20:03:34,618 [INFO] (robot.py:65)update_access_token [botpy] access_token expires_in 7019
2026-03-30 20:03:34,704 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-30 20:03:34,704 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-30 20:33:34,352 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-30 20:33:34,353 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-30 20:33:39,357 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-30 20:33:39,358 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-30 20:33:39,358 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-30 20:33:39,536 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-30 20:33:39,636 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-30 20:33:39,637 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-30 20:58:39,571 [INFO] (ru2n.py:432)on_group_at_message_create {'id': 'ROBOT1.0_DzDSqsgzBVjRlZTzYsAVrTWQPhQ9Qa2sJW9TIUvsD4yDT-mEjhVvW5uTjv27M3d0u1LJxZMbXleEkWXFSfXiUw!!', 'timestamp': '2026-03-30T20:58:38+08:00', 'ext_info': {'ref_idx': 'REFIDX_0CDyac1qMwvEFRo0Z8anTctG81ovPjw88HwjHppK6Gc='}}
2026-03-30 21:03:39,544 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-30 21:03:39,545 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-30 21:03:44,550 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-30 21:03:44,550 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-30 21:03:44,550 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-30 21:03:44,720 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-30 21:03:44,818 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-30 21:03:44,819 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-30 21:33:44,716 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-30 21:33:44,717 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-30 21:33:49,720 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-30 21:33:49,720 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-30 21:33:49,720 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-30 21:33:49,960 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-30 21:33:50,081 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-30 21:33:50,081 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-30 22:03:49,938 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-30 22:03:49,939 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-30 22:03:54,945 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-30 22:03:54,945 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-30 22:03:54,946 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-30 22:03:55,121 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-30 22:03:55,358 [INFO] (robot.py:65)update_access_token [botpy] access_token expires_in 6998
2026-03-30 22:03:55,458 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-30 22:03:55,458 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-30 22:33:55,124 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-30 22:33:55,125 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-30 22:34:00,130 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-30 22:34:00,130 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-30 22:34:00,130 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-30 22:34:00,292 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-30 22:34:00,381 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-30 22:34:00,382 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-30 23:04:00,293 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-30 23:04:00,294 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-30 23:04:05,298 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-30 23:04:05,299 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-30 23:04:05,299 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-30 23:04:05,446 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-30 23:04:05,540 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-30 23:04:05,541 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-30 23:34:05,432 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-30 23:34:05,433 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-30 23:34:10,437 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-30 23:34:10,438 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-30 23:34:10,438 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-30 23:34:10,597 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-30 23:34:10,692 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-30 23:34:10,693 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-31 00:04:10,629 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-31 00:04:10,631 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-31 00:04:15,635 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-31 00:04:15,636 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-31 00:04:15,636 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-31 00:04:15,813 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-31 00:04:16,030 [INFO] (robot.py:65)update_access_token [botpy] access_token expires_in 6978
2026-03-31 00:04:16,175 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-31 00:04:16,176 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-31 00:34:15,806 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-31 00:34:15,808 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-31 00:34:20,814 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-31 00:34:20,815 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-31 00:34:20,815 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-31 00:34:20,968 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-31 00:34:21,051 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-31 00:34:21,052 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-31 01:04:20,955 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-31 01:04:20,957 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-31 01:04:25,962 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-31 01:04:25,963 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-31 01:04:25,963 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-31 01:04:26,158 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-31 01:04:26,254 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-31 01:04:26,255 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-31 01:34:26,163 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-31 01:34:26,165 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-31 01:34:31,167 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-31 01:34:31,168 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-31 01:34:31,168 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-31 01:34:31,336 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-31 01:34:31,438 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-31 01:34:31,439 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-31 02:04:31,345 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-31 02:04:31,346 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-31 02:04:36,351 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-31 02:04:36,353 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-31 02:04:36,353 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-31 02:04:36,509 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-31 02:04:36,759 [INFO] (robot.py:65)update_access_token [botpy] access_token expires_in 6957
2026-03-31 06:35:17,927 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-31 06:35:17,928 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-31 06:35:22,933 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-31 06:35:22,934 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-31 06:35:22,934 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-31 06:35:23,083 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-31 06:35:23,171 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-31 06:35:23,172 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-31 07:05:23,081 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-31 07:05:23,082 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-31 07:05:28,087 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-31 07:05:28,088 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-31 07:05:28,088 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-31 07:05:28,251 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-31 07:05:28,366 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-31 07:05:28,367 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-31 07:35:28,435 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-31 07:35:28,436 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-31 07:35:33,438 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-31 07:35:33,438 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-31 07:35:33,438 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-31 07:35:33,596 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-31 07:35:33,675 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-31 07:35:33,676 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-31 08:05:33,589 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-31 08:05:33,590 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-31 08:05:38,594 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-31 08:05:38,595 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-31 08:05:38,595 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-31 08:05:38,779 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-31 08:05:39,033 [INFO] (robot.py:65)update_access_token [botpy] access_token expires_in 6895
2026-03-31 08:05:39,132 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-31 08:05:39,132 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-31 08:35:38,774 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-31 08:35:38,775 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-31 08:35:43,779 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-31 08:35:43,779 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-31 08:35:43,779 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-31 08:35:43,966 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-31 08:35:44,135 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-31 08:35:44,135 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-31 09:05:43,999 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-31 09:05:44,000 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-31 09:05:49,003 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026
+218
View File
@@ -0,0 +1,218 @@
2026-03-31 13:36:30,580 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-31 13:36:35,587 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-31 13:36:35,587 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-31 13:36:35,587 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-31 13:36:35,725 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-31 13:36:35,826 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-31 13:36:35,826 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-31 14:06:35,729 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-31 14:06:35,730 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-31 14:06:40,732 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-31 14:06:40,732 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-31 14:06:40,732 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-31 14:06:40,880 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-31 14:06:41,173 [INFO] (robot.py:65)update_access_token [botpy] access_token expires_in 6833
2026-03-31 14:06:41,262 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-31 14:06:41,262 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-31 14:36:40,869 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-31 14:36:40,870 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-31 14:36:45,874 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-31 14:36:45,874 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-31 14:36:45,874 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-31 14:36:46,066 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-31 14:36:46,181 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-31 14:36:46,181 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-31 15:06:46,072 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-31 15:06:46,073 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-31 15:06:51,077 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-31 15:06:51,078 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-31 15:06:51,078 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-31 15:06:51,289 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-31 15:06:51,407 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-31 15:06:51,407 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-31 15:36:51,302 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-31 15:36:51,303 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-31 15:36:56,306 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-31 15:36:56,306 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-31 15:36:56,307 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-31 15:36:56,536 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-31 15:36:56,635 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-31 15:36:56,635 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-31 16:06:56,555 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-31 16:06:56,556 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-31 16:07:01,560 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-31 16:07:01,560 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-31 16:07:01,561 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-31 16:07:01,710 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-31 16:07:01,997 [INFO] (robot.py:65)update_access_token [botpy] access_token expires_in 6812
2026-03-31 16:07:02,103 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-31 16:07:02,104 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-31 16:37:01,721 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-31 16:37:01,723 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-31 16:37:06,726 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-31 16:37:06,727 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-31 16:37:06,727 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-31 16:37:06,911 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-31 16:37:06,997 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-31 16:37:06,998 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-31 17:07:06,852 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-31 17:07:06,853 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-31 17:07:11,858 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-31 17:07:11,861 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-31 17:07:11,861 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-31 17:07:12,054 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-31 17:07:12,174 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-31 17:07:12,175 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-31 17:37:12,067 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-31 17:37:12,069 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-31 17:37:17,074 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-31 17:37:17,075 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-31 17:37:17,075 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-31 17:37:17,247 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-31 17:37:17,337 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-31 17:37:17,338 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-31 18:07:17,253 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-31 18:07:17,255 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-31 18:07:22,258 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-31 18:07:22,259 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-03-31 18:07:22,259 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-03-31 18:07:22,434 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-03-31 18:07:22,673 [INFO] (robot.py:65)update_access_token [botpy] access_token expires_in 6791
2026-03-31 18:07:22,771 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-03-31 18:07:22,772 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-03-31 18:37:22,434 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-03-31 18:37:22,436 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-03-31 18:37:27,441 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-03-31 18:37:27,442 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-04-01 00:38:24,694 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-04-01 00:38:24,695 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-04-01 00:38:29,698 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-04-01 00:38:29,699 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-04-01 00:38:29,699 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-04-01 00:38:29,851 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-04-01 00:38:29,943 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-04-01 00:38:29,944 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-04-01 01:08:29,850 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-04-01 01:08:29,851 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-04-01 01:08:34,854 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-04-01 01:08:34,854 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-04-01 01:08:34,854 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-04-01 01:08:35,010 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-04-01 01:08:35,099 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-04-01 01:08:35,099 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-04-01 01:38:35,000 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-04-01 01:38:35,002 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-04-01 01:38:40,006 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-04-01 01:38:40,006 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-04-01 01:38:40,007 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-04-01 01:38:40,137 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-04-01 01:38:40,227 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-04-01 01:38:40,227 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-04-01 02:08:40,171 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-04-01 02:08:40,173 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-04-01 02:08:45,177 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-04-01 02:08:45,178 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-04-01 02:08:45,178 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-04-01 02:08:45,331 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-04-01 02:08:45,596 [INFO] (robot.py:65)update_access_token [botpy] access_token expires_in 6708
2026-04-01 02:08:45,679 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-04-01 02:08:45,679 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-04-01 02:38:45,335 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-04-01 02:38:45,335 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-04-01 02:38:50,338 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-04-01 02:38:50,338 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-04-01 02:38:50,338 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-04-01 02:38:50,504 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-04-01 02:38:50,607 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-04-01 02:38:50,608 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-04-01 03:08:50,493 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-04-01 03:08:50,493 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-04-01 03:08:55,498 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-04-01 03:08:55,498 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-04-01 03:08:55,498 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-04-01 03:08:55,661 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-04-01 03:08:55,758 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-04-01 03:08:55,758 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-04-01 03:38:55,668 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-04-01 03:38:55,669 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-04-01 03:39:00,673 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-04-01 03:39:00,674 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-04-01 03:39:00,674 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-04-01 03:39:00,863 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-04-01 03:39:00,957 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-04-01 03:39:00,957 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-04-01 04:09:00,872 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-04-01 04:09:00,873 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-04-01 04:09:05,878 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-04-01 04:09:05,878 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-04-01 04:09:05,878 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-04-01 04:09:06,032 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-04-01 04:09:06,298 [INFO] (robot.py:65)update_access_token [botpy] access_token expires_in 6688
2026-04-01 04:09:06,385 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-04-01 04:09:06,385 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-04-01 04:39:06,027 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-04-01 04:39:06,028 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-04-01 04:39:11,032 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-04-01 04:39:11,033 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-04-01 04:39:11,033 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-04-01 04:39:11,199 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-04-01 04:39:11,298 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-04-01 04:39:11,299 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-04-01 05:09:11,224 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-04-01 05:09:11,225 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-04-01 05:09:16,230 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-04-01 05:09:16,230 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-04-01 05:09:16,231 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-04-01 05:09:16,392 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-04-01 05:09:16,519 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-04-01 05:09:16,519 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-04-01 05:39:16,362 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-04-01 05:39:16,363 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-04-01 05:39:21,368 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-04-01 05:39:21,370 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-04-01 05:39:21,371 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-04-01 05:39:21,559 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-04-01 05:39:21,632 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-04-01 05:39:21,633 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-04-01 06:09:21,588 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-04-01 06:09:21,588 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-04-01 06:09:26,591 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-04-01 06:09:26,592 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-04-01 06:09:26,593 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-04-01 06:09:26,757 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-04-01 06:09:26,991 [INFO] (robot.py:65)update_access_token [botpy] access_token expires_in 6667
2026-04-01 06:09:27,086 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-04-01 06:09:27,086 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-04-01 06:39:26,757 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-04-01 06:39:26,758 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-04-01 06:39:31,762 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-04-01 06:39:31,763 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-04-01 06:39:31,763 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-04-01 06:39:31,918 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-04-01 06:39:32,004 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-04-01 06:39:32,004 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-04-01 07:09:31,926 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-04-01 07:09:31,927 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-04-01 07:09:36,930 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-04-01 07:09:36,930 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-04-01 07:09:36,930 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-04-01 07:09:37,114 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-04-01 07:09:37,201 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-04-01 07:09:37,201 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-04-01 07:39:37,106 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-04-01 07:39:37,108 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-04-01 07:39:42,113 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-04-01 07:39:42,113 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-04-01 07:39:42,114 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-04-01 07:39:42,299 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-04-01 07:39:42,409 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-04-01 07:39:42,409 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-04-01 08:09:42,300 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-04-01 08:09:42,302 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-04-01 08:09:47,306 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-04-01 08:09:47,307 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-04-01 08:09:47,307 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-04-01 08:09:47,475 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-04-01 08:09:47,733 [INFO] (robot.py:65)update_access_token [botpy] access_token expires_in 6646
2026-04-01 08:09:47,839 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-04-01 08:09:
+44
View File
@@ -0,0 +1,44 @@
2026-04-01 13:40:39,306 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-04-01 13:40:44,312 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-04-01 13:40:44,313 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-04-01 13:40:44,313 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-04-01 13:40:44,507 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-04-01 13:40:44,618 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-04-01 13:40:44,618 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-04-01 14:10:44,517 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-04-01 14:10:44,518 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-04-01 14:10:49,519 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-04-01 14:10:49,520 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-04-01 14:10:49,520 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-04-01 14:10:49,701 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-04-01 14:10:49,942 [INFO] (robot.py:65)update_access_token [botpy] access_token expires_in 6584
2026-04-01 14:10:50,241 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-04-01 14:10:50,241 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-04-01 14:40:49,695 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-04-01 14:40:49,696 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-04-01 14:40:54,698 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-04-01 14:40:54,698 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-04-01 14:40:54,698 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-04-01 14:40:54,859 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-04-01 14:40:54,946 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-04-01 14:40:54,946 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-04-01 15:10:54,857 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-04-01 15:10:54,858 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-04-01 15:10:59,862 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-04-01 15:10:59,862 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-04-01 15:10:59,862 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-04-01 15:10:59,990 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-04-01 15:11:00,071 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-04-01 15:11:00,072 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-04-01 15:40:59,997 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-04-01 15:40:59,998 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-04-01 15:41:05,005 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-04-01 15:41:05,005 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-04-01 15:41:05,005 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-04-01 15:41:05,150 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-04-01 15:41:05,241 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-04-01 15:41:05,241 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-04-01 16:11:05,143 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-04-01 16:11:05,144 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-04-01 16:11:10,146 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-04-01 16:11:10,146 [IN
+44
View File
@@ -0,0 +1,44 @@
2026-04-02 13:44:48,286 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-04-02 13:44:53,293 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-04-02 13:44:53,294 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-04-02 13:44:53,294 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-04-02 13:44:53,462 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-04-02 13:44:53,567 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-04-02 13:44:53,567 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-04-02 14:14:53,467 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-04-02 14:14:53,468 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-04-02 14:14:58,472 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-04-02 14:14:58,472 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-04-02 14:14:58,473 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-04-02 14:14:58,642 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-04-02 14:14:58,968 [INFO] (robot.py:65)update_access_token [botpy] access_token expires_in 6335
2026-04-02 14:14:59,246 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-04-02 14:14:59,246 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-04-02 14:44:58,644 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-04-02 14:44:58,645 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-04-02 14:45:03,648 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-04-02 14:45:03,649 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-04-02 14:45:03,649 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-04-02 14:45:03,837 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-04-02 14:45:03,935 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-04-02 14:45:03,935 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-04-02 15:15:03,820 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-04-02 15:15:03,821 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-04-02 15:15:08,823 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-04-02 15:15:08,823 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-04-02 15:15:08,823 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-04-02 15:15:08,981 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-04-02 15:15:09,070 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-04-02 15:15:09,070 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-04-02 15:45:08,980 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-04-02 15:45:08,981 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-04-02 15:45:13,986 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-04-02 15:45:13,986 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-04-02 15:45:13,986 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-04-02 15:45:14,155 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-04-02 15:45:14,279 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-04-02 15:45:14,279 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-04-02 16:15:14,176 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-04-02 16:15:14,177 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-04-02 16:15:19,182 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-04-02 16:15:19,182 [IN
+310
View File
@@ -0,0 +1,310 @@
2026-04-03 13:48:56,959 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-04-03 13:49:01,966 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-04-03 13:49:01,966 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-04-03 13:49:01,966 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-04-03 13:49:02,130 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-04-03 13:49:02,237 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-04-03 13:49:02,237 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-04-03 14:19:02,134 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-04-03 14:19:02,136 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-04-03 14:19:07,141 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-04-03 14:19:07,142 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-04-03 14:19:07,142 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-04-03 14:19:07,374 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-04-03 14:19:07,702 [INFO] (robot.py:65)update_access_token [botpy] access_token expires_in 6086
2026-04-03 14:19:07,795 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-04-03 14:19:07,796 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-04-03 14:49:07,373 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-04-03 14:49:07,374 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-04-03 14:49:12,375 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-04-03 14:49:12,376 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-04-03 14:49:12,376 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-04-03 14:49:12,571 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-04-03 14:49:12,665 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-04-03 14:49:12,666 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-04-03 15:19:12,572 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-04-03 15:19:12,573 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-04-03 15:19:17,578 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-04-03 15:19:17,578 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-04-03 15:19:17,578 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-04-03 15:19:17,740 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-04-03 15:19:17,844 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-04-03 15:19:17,844 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-04-03 15:49:17,765 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-04-03 15:49:17,766 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-04-03 15:49:22,771 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-04-03 15:49:22,771 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-04-03 15:49:22,771 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-04-03 15:49:22,951 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-04-03 15:49:23,045 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-04-03 15:49:23,046 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-04-03 16:19:22,946 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-04-03 16:19:22,947 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-04-03 16:19:27,948 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-04-03 16:19:27,949 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-04-03 16:19:27,950 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-04-03 16:19:28,117 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-04-03 16:19:28,598 [INFO] (robot.py:65)update_access_token [botpy] access_token expires_in 6065
2026-04-03 16:19:28,691 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-04-03 16:19:28,692 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-04-03 16:49:28,101 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-04-03 16:49:28,103 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-04-03 16:49:33,107 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-04-03 16:49:33,108 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-04-03 16:49:33,108 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-04-03 16:49:33,269 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-04-03 16:49:33,356 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-04-03 16:49:33,357 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-04-03 17:19:33,295 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-04-03 17:19:33,296 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-04-03 17:19:38,301 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-04-03 17:19:38,302 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-04-03 17:19:38,302 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-04-03 17:19:38,447 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-04-03 17:19:38,535 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-04-03 17:19:38,535 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-04-03 17:49:38,455 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-04-03 17:49:38,457 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-04-03 17:49:43,462 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-04-03 17:49:43,462 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-04-03 17:49:43,463 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-04-03 17:49:43,615 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-04-03 17:49:43,715 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-04-03 17:49:43,716 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-04-03 18:19:43,621 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-04-03 18:19:43,623 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-04-03 18:19:48,627 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-04-03 18:19:48,628 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-04-03 18:19:48,628 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-04-03 18:19:48,782 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-04-03 18:19:49,048 [INFO] (robot.py:65)update_access_token [botpy] access_token expires_in 6045
2026-04-03 18:19:49,149 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-04-03 18:19:49,150 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-04-03 18:49:48,787 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-04-03 18:49:48,789 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-04-03 18:49:53,793 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-04-03 18:49:53,794 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-04-04 00:20:45,742 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-04-04 00:20:45,743 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-04-04 00:20:50,746 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-04-04 00:20:50,746 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-04-04 00:20:50,746 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-04-04 00:20:50,868 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-04-04 00:20:51,224 [INFO] (robot.py:65)update_access_token [botpy] access_token expires_in 5983
2026-04-04 00:20:51,317 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-04-04 00:20:51,317 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-04-04 00:50:50,859 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-04-04 00:50:50,860 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-04-04 00:50:55,864 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-04-04 00:50:55,865 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-04-04 00:50:55,865 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-04-04 00:50:56,032 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-04-04 00:50:56,137 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-04-04 00:50:56,137 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-04-04 01:20:56,045 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-04-04 01:20:56,045 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-04-04 01:21:01,048 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-04-04 01:21:01,049 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-04-04 01:21:01,049 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-04-04 01:21:01,198 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-04-04 01:21:01,300 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-04-04 01:21:01,301 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-04-04 01:51:01,209 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-04-04 01:51:01,210 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-04-04 01:51:06,212 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-04-04 01:51:06,213 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-04-04 01:51:06,213 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-04-04 01:51:06,441 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-04-04 01:51:06,527 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-04-04 01:51:06,527 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-04-04 02:21:06,442 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-04-04 02:21:06,443 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-04-04 02:21:11,446 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-04-04 02:21:11,446 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-04-04 02:21:11,446 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-04-04 02:21:11,671 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-04-04 02:21:11,990 [INFO] (robot.py:65)update_access_token [botpy] access_token expires_in 5920
2026-04-04 02:21:12,103 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-04-04 02:21:12,103 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-04-04 02:51:11,676 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-04-04 02:51:11,677 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-04-04 02:51:16,682 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-04-04 02:51:16,682 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-04-04 02:51:16,682 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-04-04 02:51:16,848 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-04-04 02:51:16,948 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-04-04 02:51:16,948 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-04-04 03:21:16,847 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-04-04 03:21:16,848 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-04-04 03:21:21,853 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-04-04 03:21:21,853 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-04-04 03:21:21,853 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-04-04 03:21:22,077 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-04-04 03:21:22,180 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-04-04 03:21:22,180 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-04-04 03:51:22,061 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-04-04 03:51:22,062 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-04-04 03:51:27,066 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-04-04 03:51:27,066 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-04-04 03:51:27,066 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-04-04 03:51:27,227 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-04-04 03:51:27,318 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-04-04 03:51:27,318 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-04-04 04:21:27,231 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-04-04 04:21:27,232 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-04-04 04:21:32,235 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-04-04 04:21:32,235 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-04-04 04:21:32,236 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-04-04 04:21:32,391 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-04-04 04:21:32,678 [INFO] (robot.py:65)update_access_token [botpy] access_token expires_in 5941
2026-04-04 04:21:32,770 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-04-04 04:21:32,771 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-04-04 04:51:32,400 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-04-04 04:51:32,401 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-04-04 04:51:37,405 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-04-04 04:51:37,405 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-04-04 04:51:37,405 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-04-04 04:51:37,581 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-04-04 04:51:37,676 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-04-04 04:51:37,676 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-04-04 05:21:37,581 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-04-04 05:21:37,582 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-04-04 05:21:42,587 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-04-04 05:21:42,587 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-04-04 05:21:42,587 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-04-04 05:21:42,734 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-04-04 05:21:42,812 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-04-04 05:21:42,812 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-04-04 05:51:42,740 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-04-04 05:51:42,740 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-04-04 05:51:47,744 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-04-04 05:51:47,744 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-04-04 05:51:47,745 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-04-04 05:51:47,882 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-04-04 05:51:47,977 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-04-04 05:51:47,978 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-04-04 06:21:47,884 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-04-04 06:21:47,885 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-04-04 06:21:52,890 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-04-04 06:21:52,891 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-04-04 06:21:52,891 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-04-04 06:21:53,074 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-04-04 06:21:53,405 [INFO] (robot.py:65)update_access_token [botpy] access_token expires_in 5920
2026-04-04 06:21:53,502 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-04-04 06:21:53,502 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-04-04 06:51:53,074 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-04-04 06:51:53,075 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-04-04 06:51:58,080 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-04-04 06:51:58,080 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-04-04 06:51:58,080 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-04-04 06:51:58,220 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-04-04 06:51:58,347 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-04-04 06:51:58,348 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-04-04 07:21:58,227 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-04-04 07:21:58,228 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-04-04 07:22:03,231 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-04-04 07:22:03,232 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-04-04 07:22:03,232 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-04-04 07:22:03,392 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-04-04 07:22:03,494 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-04-04 07:22:03,494 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-04-04 07:52:03,399 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-04-04 07:52:03,400 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-04-04 07:52:08,404 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-04-04 07:52:08,405 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-04-04 07:52:08,405 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-04-04 07:52:08,612 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-04-04 07:52:08,739 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-04-04 07:52:08,739 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-04-04 08:22:08,605 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-04-04 08:22:08,606 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-04-04 08:22:13,610 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-04-04 08:22:13,610 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-04-04 08:22:13,610 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-04-04 08:22:13,772 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-04-04 08:22:14,110 [INFO] (robot.py:65)update_access_token [botpy] access_token expires_in 5900
2026-04-04 08:22:14,199 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-04-04 08:22:14,199 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-04-04 08:52:13,772 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-04-04 08:52:13,773 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-04-04 08:52:18,778 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-04-04 08:52:18,778 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-04-04 08:52:18,779 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-04-04 08:52:18,910 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-04-04 08:52:18,997 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-04-04 08:52:18,997 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-04-04 09:22:18,916 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-04-04 09:22:18,917 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-04-04 09:22:23,921 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-04-04 09:22:23,921 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-04-04 09:22:23,922 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-04-04 09:22:24,095 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-04-04 09:22:24,199 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-04-04 09:22:24,199 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-04-04 09:52:24,096 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-04-04 09:52:24,097 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-04-04 09:52:29,102 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-04-04 09:52:29,103 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-04-04 09:52:29,103 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-04-04 09:52:29,249 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-04-04 09:52:29,343 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-04-04 09:52:29,343 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-04-04 10:22:29,244 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-04-04 10:22:29,245 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-04-04 10:22:34,247 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-04-04 10:22:34,248 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-04-04 10:22:34,248 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-04-04 10:22:34,428 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-04-04 10:22:34,787 [INFO] (robot.py:65)update_access_token [botpy] access_token expires_in 5879
2026-04-04 10:22:34,886 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-04-04 10:22:34,886 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-04-04 10:52:34,433 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-04-04 10:52:34,434 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-04-04 10:52:39,438 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-04-04 10:52:39,439 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-04-04 10:52:39,439 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-04-04 10:52:39,606 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-04-04 10:52:39,699 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-04-04 10:52:39,699 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-04-04 11:22:39,602 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-04-04 11:22:39,603 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-04-04 11:22:44,606 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-04-04 11:22:44,607 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-04-04 11:22:44,607 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-04-04 11:22:44,772 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-04-04 11:22:44,862 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-04-04 11:22:44,863 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-04-04 11:52:44,776 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-04-04 11:52:44,777 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-04-04 11:52:49,783 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-04-04 11:52:49,784 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-04-04 11:52:49,784 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-04-04 11:52:49,957 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-04-04 11:52:50,062 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-04-04 11:52:50,063 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-04-04 12:10:34,712 [INFO] (robot.py:65)update_access_token [botpy] access_token expires_in 6599
2026-04-04 12:10:37,126 [INFO] (ru2n.py:432)on_group_at_message_create {'id': 'ROBOT1.0_vOuG-1rNwL31gqd6zJhZDaynVbQBF1xA.3EDxC.EYNBknTob.sfGy2Fkc1hrTaeL5B72-pqdvXLMCeRhViWbRA!!', 'timestamp': '2026-04-04T12:10:36+08:00', 'ext_info': {'ref_idx': 'REFIDX_Jw9yXIl/gXNe8Rk3i0oFustG81ovPjw88HwjHppK6Gc='}}
2026-04-04 12:22:49,963 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-04-04 12:22:49,964 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-04-04 12:22:54,968 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-04-04 12:22:54,968 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-04-04 12:22:54,969 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-04-04 12:22:55,163 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-04-04 12:22:55,277 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-04-04 12:22:55,277 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-04-04 12:52:55,173 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-04-04 12:52:55,174 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-04-04 12:53:00,178 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-04-04 12:53:00,179 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-04-04 12:53:00,179 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-04-04 12:53:00,336 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-04-04 12:53:00,444 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-04-04 12:53:00,444 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
2026-04-04 13:23:00,330 [INFO] (gateway.py:56)on_closed [botpy] 关闭, 返回码: 4009, 返回信息: Session timed out
2026-04-04 13:23:00,330 [INFO] (gateway.py:134)ws_connect [botpy] ws关闭, 停止接收消息!
2026-04-04 13:23:05,333 [INFO] (connection.py:60)multi_run [botpy] 最大并发连接数: 1, 启动会话数: 1
2026-04-04 13:23:05,334 [INFO] (client.py:242)bot_connect [botpy] 会话启动中...
2026-04-04 13:23:05,334 [INFO] (gateway.py:115)ws_connect [botpy] 启动中...
2026-04-04 13:23:05,522 [INFO] (gateway.py:175)ws_resume [botpy] 重连启动...
2026-04-04 13:23:05,664 [INFO] (gateway.py:90)on_message [botpy] 机器人重连成功!
2026-04-04 13:23:05,665 [INFO] (gateway.py:223)_send_heart [botpy] 心跳维持启动...
+76
View File
@@ -0,0 +1,76 @@
import hashlib
import json
import requests
def get_public_ip():
try:
response = requests.get('https://myip.ipip.net/ip')
if response.status_code == 200:
return json.loads(response.text)['ip']
else:
return "Failed to get public IP address"
except requests.RequestException as e:
return f"Error: {e}"
def generate_md5(ip, key):
# 将IP地址和key拼接
combined_string = ip + key
# 创建md5对象
md5 = hashlib.md5()
# 对拼接后的字符串进行MD5加密
md5.update(combined_string.encode('utf-8'))
# 返回MD5加密后的16进制字符串
return md5.hexdigest()
# 获取本地IP地址
local_ip = get_public_ip()
# 指定的key
key = "123123"
# 生成MD5
md5_result = generate_md5(key,local_ip)
url = "https://u.sunderer.games/index.php/botapi/UserApi/isUserAuth"
querystring = {"gamename":"gamone1","key":"6097d1cb7d8f09bf5f60b40124d99069"}
querystring['gamename'] = 'A0KIWASUKE'
querystring['key'] = md5_result
payload = "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"page_no\"\r\n\r\n1\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"page_size\"\r\n\r\n15\r\n-----011000010111000001101001--\r\n\r\n"
headers = {
"Accept": "*/*",
"Accept-Encoding": "gzip, deflate, br",
"User-Agent": "PostmanRuntime-ApipostRuntime/1.1.0",
"Connection": "keep-alive",
"content-type": "multipart/form-data; boundary=---011000010111000001101001"
}
response = requests.request("POST", url, data=payload, headers=headers, params=querystring)
print(response.text)
a = json.loads(response.text)
print(a['code'])
print("MD5 Hash:", md5_result)
print("MD5 Hash:", local_ip)
"""import requests
url = "http://botapi/UserApi/getSubbackUploadImgInfo"
payload = "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"key\"\r\n\r\n6097d1cb7d8f09bf5f60b40124d99069\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"page_no\"\r\n\r\n1\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"page_size\"\r\n\r\n15\r\n-----011000010111000001101001--\r\n\r\n"
headers = {
"Accept": "*/*",
"Accept-Encoding": "gzip, deflate, br",
"User-Agent": "PostmanRuntime-ApipostRuntime/1.1.0",
"Connection": "keep-alive",
"content-type": "multipart/form-data; boundary=---011000010111000001101001"
}
headers['key'] = md5_result
response = requests.request("POST", url, data=payload, headers=headers)
print(response.text)"""
BIN
View File
Binary file not shown.
+28
View File
@@ -0,0 +1,28 @@
character_id,user_name
1,LeisurelyMotherHunter
2,ASA114514
3,A0KIWASUKE
4,samlxy
5,FindRainOV
6,chsYGMRY
7,TTFLY
8,Lymiao330
9,jasktma
10,XFaputaX
11,Lymiao
12,MewMew330
13,MaoZhiZhu
14,CatSpider330
15,ArcticNeptune
16,Noob330
17,Faputa330
18,Lemon330
19,KasiliasTR
20,kasiliast
21,Kasilias
22,EndlessMotherHuter
23,ElemetaryMyDear
24,KasiliasVS
25,93Tatsuya
26,93Lotus
27,NSOC
1 character_id user_name
2 1 LeisurelyMotherHunter
3 2 ASA114514
4 3 A0KIWASUKE
5 4 samlxy
6 5 FindRainOV
7 6 chsYGMRY
8 7 TTFLY
9 8 Lymiao330
10 9 jasktma
11 10 XFaputaX
12 11 Lymiao
13 12 MewMew330
14 13 MaoZhiZhu
15 14 CatSpider330
16 15 ArcticNeptune
17 16 Noob330
18 17 Faputa330
19 18 Lemon330
20 19 KasiliasTR
21 20 kasiliast
22 21 Kasilias
23 22 EndlessMotherHuter
24 23 ElemetaryMyDear
25 24 KasiliasVS
26 25 93Tatsuya
27 26 93Lotus
28 27 NSOC
+28
View File
@@ -0,0 +1,28 @@
character_id,user_nickname,user_pic,outfit_flag,是否是赞助用户,是否是爹
1,肆佰肆,LeisurelyMotherHunter.jpg,MOMH,True,True
2,肆佰肆,ASA114514.png,CPCT,True,True
3,青木和介,青木和介.jpg,MOMH,True,True
4,samlxy,新联邦.png,outfitimg,True,True
5,懧雨,懧雨.png,CNVA,True,True
6,CH,CH.png,SLNM,True,True
7,TTFLY,地球共和国.png,outfitimg,True,True
8,超级怀猫330,330tr.jpg,outfitimg,True,True
9,超级怀猫330,330tr.jpg,outfitimg,True,True
10,超级怀猫330,330tr.jpg,outfitimg,True,True
11,超级怀猫330,330nc.jpg,outfitimg,True,True
12,超级怀猫330,330nc.jpg,SLNM,True,True
13,超级怀猫330,330nc.jpg,outfitimg,True,True
14,超级怀猫330,330nc.jpg,outfitimg,True,True
15,超级怀猫330,330vs.jpg,outfitimg,True,True
16,超级怀猫330,330vs.jpg,outfitimg,True,True
17,超级怀猫330,330vs.jpg,outfitimg,True,True
18,超级怀猫330,330ns.jpg,outfitimg,True,True
19,Kasilias,KasiliasTR.jpg,outfitimg,True,True
20,Kasilias,KasiliasTR.jpg,outfitimg,True,True
21,Kasilias,KasiliasNC.jpg,outfitimg,True,True
22,Kasilias,KasiliasNC.jpg,outfitimg,True,True
23,Kasilias,KasiliasVS.jpg,outfitimg,True,True
24,Kasilias,KasiliasVS.jpg,outfitimg,True,True
25,Kasilias,KasiliasVS.jpg,outfitimg,True,True
26,93Lotus,瓦努主权国.png,outfitimg,True,True
27,94Lotus,纳能特工.png,outfitimg,True,True
1 character_id user_nickname user_pic outfit_flag 是否是赞助用户 是否是爹
2 1 肆佰肆 LeisurelyMotherHunter.jpg MOMH True True
3 2 肆佰肆 ASA114514.png CPCT True True
4 3 青木和介 青木和介.jpg MOMH True True
5 4 samlxy 新联邦.png outfitimg True True
6 5 懧雨 懧雨.png CNVA True True
7 6 CH CH.png SLNM True True
8 7 TTFLY 地球共和国.png outfitimg True True
9 8 超级怀猫330 330tr.jpg outfitimg True True
10 9 超级怀猫330 330tr.jpg outfitimg True True
11 10 超级怀猫330 330tr.jpg outfitimg True True
12 11 超级怀猫330 330nc.jpg outfitimg True True
13 12 超级怀猫330 330nc.jpg SLNM True True
14 13 超级怀猫330 330nc.jpg outfitimg True True
15 14 超级怀猫330 330nc.jpg outfitimg True True
16 15 超级怀猫330 330vs.jpg outfitimg True True
17 16 超级怀猫330 330vs.jpg outfitimg True True
18 17 超级怀猫330 330vs.jpg outfitimg True True
19 18 超级怀猫330 330ns.jpg outfitimg True True
20 19 Kasilias KasiliasTR.jpg outfitimg True True
21 20 Kasilias KasiliasTR.jpg outfitimg True True
22 21 Kasilias KasiliasNC.jpg outfitimg True True
23 22 Kasilias KasiliasNC.jpg outfitimg True True
24 23 Kasilias KasiliasVS.jpg outfitimg True True
25 24 Kasilias KasiliasVS.jpg outfitimg True True
26 25 Kasilias KasiliasVS.jpg outfitimg True True
27 26 93Lotus 瓦努主权国.png outfitimg True True
28 27 94Lotus 纳能特工.png outfitimg True True
+12
View File
@@ -0,0 +1,12 @@
outfit_tag,outfit_pic
MOMH,MOMH.jpg
CPCT,ps2cpc-tr.png
TRimg,ps2cpc-tr.png
VSimg,ps2cpc-vs.png
NCimg,ps2cpc-nc.png
NSOimg,ps2cpc-nso.png
outfitimg,无匹配军团信息-new.png
CNV,CNVA.png
CNVA,CNVA.png
SLNM,SLNM.jpg
CYA6,CYA6.jpg
1 outfit_tag outfit_pic
2 MOMH MOMH.jpg
3 CPCT ps2cpc-tr.png
4 TRimg ps2cpc-tr.png
5 VSimg ps2cpc-vs.png
6 NCimg ps2cpc-nc.png
7 NSOimg ps2cpc-nso.png
8 outfitimg 无匹配军团信息-new.png
9 CNV CNVA.png
10 CNVA CNVA.png
11 SLNM SLNM.jpg
12 CYA6 CYA6.jpg
+47
View File
@@ -0,0 +1,47 @@
import csv
def read_csv_to_list(csv_file):
"""
将CSV文件读取为列表
参数:
csv_file (str): CSV文件路径
返回:
list: 包含所有行数据的列表,每行是一个子列表
"""
data_list = []
try:
with open(csv_file, 'r', encoding='utf-8') as file:
# 创建CSV阅读器
csv_reader = csv.reader(file)
# 跳过标题行(可选)
next(csv_reader) # 去掉这行如果不需要跳过标题
# 逐行读取
for row in csv_reader:
data_list.append(row)
return data_list
except FileNotFoundError:
print(f"错误: 文件 {csv_file} 不存在")
return []
except Exception as e:
print(f"读取CSV时出错: {str(e)}")
return []
def find_id(id,data_list):
for sublist in data_list:
if id in sublist:
found = True
break # 找到第一个匹配项就停止
return sublist
start = read_csv_to_list(r'C:\Cq-http\NoneBot\Git_Plugins\QQbot\csv\nickname.csv')
st1 = find_id('4',start)
print(st1)
+4
View File
@@ -0,0 +1,4 @@
Name,Age,Occupation
张三,30,工程师
李四,25,设计师
王五,28,产品经理
1 Name Age Occupation
2 张三 30 工程师
3 李四 25 设计师
4 王五 28 产品经理
+8874
View File
File diff suppressed because it is too large Load Diff
+53
View File
@@ -0,0 +1,53 @@
Soltech ser
Cobalt ser
Miller ser
Jaeger ser
Emerald ser
Connery ser
柯伯特 ser
米勒 ser
索泰克 ser
艾莫若德 ser
康纳利 ser
奥斯普雷 ser
温怀特 ser
猎人 ser
美西 ser
美东 ser
亚服 ser
欧服 ser
Esamir map
Oshur map
Hossin map
Indar map
Amerish map
kill que
death que
kdr que
kpm que
hpk que
ivi que
hsr que
acc que
time que
开火次数 qua
命中次数 qua
命中率 qua
击杀平均命中数 qua
击杀平均开火数 qua
伤害量 qua
碾压次数 qua
累计使用时间 qua
分钟平均得分数 qua
人口 flg
查询 flg
蚊子 vea
镰刀 vea
解放 vea
海盗 vea
电磁 vea
徘徊 vea
决裂 vea
先驱 vea
奇美拉 vea
突袭 vea
+41
View File
@@ -0,0 +1,41 @@
'itemId': '803617',
'itemId': '1268',
'itemId': '1267',
'itemId': '1266',
'itemId': '1265',
'itemId': '6014305',
'itemId': '803605',
'itemId': '6004611',
'itemId': '803611',
'itemId': '804702',
'itemId': '803614',
'itemId': '7609',
'itemId': '803470',
'itemId': '376',
'itemId': '377',
'itemId': '6005225',
'itemId': '45',
'itemId': '6002955',
'itemId': '6009856',
'itemId': '153',
'itemId': '804263',
'itemId': '6003552',
'itemId': '6004529',
'itemId': '6002466',
'itemId': '1619',
'itemId': '1618',
'itemId': '6009090',
'itemId': '95',
'itemId': '1617',
'itemId': '6009093',
'itemId': '6004873',
'itemId': '99',
'itemId': '1621',
'itemId': '1620',
'itemId': '6004421',
'itemId': '6004425',
'itemId': '6002354',
'itemId': '6002472',
'itemId': '6002478',
'itemId': '6002496',
'itemId': '6002490',
+456
View File
@@ -0,0 +1,456 @@
[{'itemId': '40000', 'vehicleId': '0', 'engName': 'AF-57 Piston'
, 'name': 'AF-57 活塞'
, 'kill': 1577, 'teamKill': 0, 'killedBy': 0, 'headshot': 242, 'vehicleKill': 38, 'fire': 13803, 'hit': 6461, 'death': 1750, 'damage': 947755, 'damageTakenBy': 0, 'score': 324530, 'playTime': 283495, 'kdr': 0.9011, 'kpm': 0.3338, 'hsr': 0.1535, 'kps': 8.7527, 'hpk': 4.097, 'spm': 68.6848, 'accuracy': 0.4681, 'ivi': 718.3067, 'imageId': '87327', 'imageSrc': '/files/ps2/images/static/87327.png'},
{'itemId': '6004218', 'vehicleId': '0', 'engName': 'MGR-L1 Promise'
, 'name': 'MGR-L1 承诺'
, 'kill': 973, 'teamKill': 0, 'killedBy': 0, 'headshot': 234, 'vehicleKill': 22, 'fire': 49577, 'hit': 15171, 'death': 1179, 'damage': 715354, 'damageTakenBy': 0, 'score': 169049, 'playTime': 219836, 'kdr': 0.8253, 'kpm': 0.2656, 'hsr': 0.2405, 'kps': 50.9527, 'hpk': 15.592, 'spm': 46.1387, 'accuracy': 0.306, 'ivi': 735.9308, 'imageId': '88459', 'imageSrc': '/files/ps2/images/static/88459.png'},
{'itemId': '6003850', 'vehicleId': '0', 'engName': 'MGR-S1 Gladius'
, 'name': 'MGR-S1 罗马短剑'
, 'kill': 347, 'teamKill': 0, 'killedBy': 0, 'headshot': 61, 'vehicleKill': 6, 'fire': 10883, 'hit': 3881, 'death': 490, 'damage': 260935, 'damageTakenBy': 0, 'score': 75713, 'playTime': 151320, 'kdr': 0.7082, 'kpm': 0.1376, 'hsr': 0.1758, 'kps': 31.3631, 'hpk': 11.1844, 'spm': 30.021, 'accuracy': 0.3566, 'ivi': 626.8958, 'imageId': '88462', 'imageSrc': '/files/ps2/images/static/88462.png'},
{'itemId': '75063', 'vehicleId': '0', 'engName': 'NS-44 Commissioner'
, 'name': 'NS-44 军政委'
, 'kill': 341, 'teamKill': 0, 'killedBy': 126, 'headshot': 71, 'vehicleKill': 6, 'fire': 3924, 'hit': 1512, 'death': 649, 'damage': 251290, 'damageTakenBy': 68362, 'score': 62605, 'playTime': 415035, 'kdr': 0.5254, 'kpm': 0.0493, 'hsr': 0.2082, 'kps': 11.5073, 'hpk': 4.434, 'spm': 9.0506, 'accuracy': 0.3853, 'ivi': 802.2815, 'imageId': '8733', 'imageSrc': '/files/ps2/images/static/8733.png'},
{'itemId': '432', 'vehicleId': '0', 'engName': 'C-4'
, 'name': 'C-4'
, 'kill': 325, 'teamKill': 0, 'killedBy': 135, 'headshot': 0, 'vehicleKill': 164, 'fire': 1610, 'hit': 434, 'death': 244, 'damage': 1183273, 'damageTakenBy': 75369, 'score': 131999, 'playTime': 16258, 'kdr': 1.332, 'kpm': 1.1994, 'hsr': 0.0, 'kps': 4.9538, 'hpk': 1.3354, 'spm': 487.1411, 'accuracy': 0.2696, 'ivi': 0.0, 'imageId': '89142', 'imageSrc': '/files/ps2/images/static/89142.png'},
{'itemId': '7169', 'vehicleId': '0', 'engName': 'GD-7F'
, 'name': 'GD-7F'
, 'kill': 284, 'teamKill': 0, 'killedBy': 0, 'headshot': 65, 'vehicleKill': 14, 'fire': 12543, 'hit': 4044, 'death': 449, 'damage': 212786, 'damageTakenBy': 0, 'score': 66815, 'playTime': 166901, 'kdr': 0.6325, 'kpm': 0.1021, 'hsr': 0.2289, 'kps': 44.1655, 'hpk': 14.2394, 'spm': 24.0196, 'accuracy': 0.3224, 'ivi': 737.9123, 'imageId': '5325', 'imageSrc': '/files/ps2/images/static/5325.png'},
{'itemId': '6005055', 'vehicleId': '0', 'engName': 'MGR-C1 Charger'
, 'name': 'MGR-C1 冲能'
, 'kill': 254, 'teamKill': 0, 'killedBy': 0, 'headshot': 55, 'vehicleKill': 22, 'fire': 16856, 'hit': 4662, 'death': 637, 'damage': 218358, 'damageTakenBy': 0, 'score': 52805, 'playTime': 188623, 'kdr': 0.3987, 'kpm': 0.0808, 'hsr': 0.2165, 'kps': 66.3622, 'hpk': 18.3543, 'spm': 16.797, 'accuracy': 0.2766, 'ivi': 598.8895, 'imageId': '88456', 'imageSrc': '/files/ps2/images/static/88456.png'},
{'itemId': '6006186', 'vehicleId': '0', 'engName': 'MGR-A1 Vanquisher'
, 'name': 'MGR-A1 征服者'
, 'kill': 245, 'teamKill': 0, 'killedBy': 0, 'headshot': 47, 'vehicleKill': 14, 'fire': 10313, 'hit': 2977, 'death': 534, 'damage': 185004, 'damageTakenBy': 0, 'score': 43711, 'playTime': 70694, 'kdr': 0.4588, 'kpm': 0.2079, 'hsr': 0.1918, 'kps': 42.0939, 'hpk': 12.151, 'spm': 37.0988, 'accuracy': 0.2887, 'ivi': 553.7651, 'imageId': '88453', 'imageSrc': '/files/ps2/images/static/88453.png'},
{'itemId': '27001', 'vehicleId': '0', 'engName': 'Blitz GD-10'
, 'name': 'GD-10 雷霆'
, 'kill': 215, 'teamKill': 0, 'killedBy': 0, 'headshot': 44, 'vehicleKill': 5, 'fire': 11442, 'hit': 3292, 'death': 259, 'damage': 167736, 'damageTakenBy': 0, 'score': 36676, 'playTime': 262424, 'kdr': 0.8301, 'kpm': 0.0492, 'hsr': 0.2047, 'kps': 53.2186, 'hpk': 15.3116, 'spm': 8.3855, 'accuracy': 0.2877, 'ivi': 588.8058, 'imageId': '8003', 'imageSrc': '/files/ps2/images/static/8003.png'},
{'itemId': '7103', 'vehicleId': '0', 'engName': 'Carnage AR'
, 'name': '残杀 AR'
, 'kill': 211, 'teamKill': 0, 'killedBy': 0, 'headshot': 30, 'vehicleKill': 11, 'fire': 9433, 'hit': 2708, 'death': 382, 'damage': 130408, 'damageTakenBy': 0, 'score': 37040, 'playTime': 53961, 'kdr': 0.5524, 'kpm': 0.2346, 'hsr': 0.1422, 'kps': 44.7062, 'hpk': 12.8341, 'spm': 41.1853, 'accuracy': 0.2871, 'ivi': 408.1668, 'imageId': '9443', 'imageSrc': '/files/ps2/images/static/9443.png'},
{'itemId': '804940', 'vehicleId': '0', 'engName': 'Rocklet Rifle'
, 'name': '小火箭步枪'
, 'kill': 194, 'teamKill': 0, 'killedBy': 0, 'headshot': 0, 'vehicleKill': 155, 'fire': 9794, 'hit': 6037, 'death': 151, 'damage': 681053, 'damageTakenBy': 0, 'score': 128916, 'playTime': 19485, 'kdr': 1.2848, 'kpm': 0.5974, 'hsr': 0.0, 'kps': 50.4845, 'hpk': 31.1186, 'spm': 396.97, 'accuracy': 0.6164, 'ivi': 0.0, 'imageId': '86315', 'imageSrc': '/files/ps2/images/static/86315.png'},
{'itemId': '3', 'vehicleId': '0', 'engName': 'AF-19 Mercenary'
, 'name': 'AF-19 雇佣兵'
, 'kill': 193, 'teamKill': 0, 'killedBy': 0, 'headshot': 37, 'vehicleKill': 8, 'fire': 10748, 'hit': 2931, 'death': 412, 'damage': 170644, 'damageTakenBy': 0, 'score': 41410, 'playTime': 124998, 'kdr': 0.4684, 'kpm': 0.0926, 'hsr': 0.1917, 'kps': 55.6891, 'hpk': 15.1865, 'spm': 19.8771, 'accuracy': 0.2727, 'ivi': 522.7964, 'imageId': '5322', 'imageSrc': '/files/ps2/images/static/5322.png'},
{'itemId': '2314', 'vehicleId': '0', 'engName': 'MKV Suppressed'
, 'name': 'MKV 消音型'
, 'kill': 186, 'teamKill': 0, 'killedBy': 35, 'headshot': 35, 'vehicleKill': 6, 'fire': 9069, 'hit': 3168, 'death': 299, 'damage': 150247, 'damageTakenBy': 20598, 'score': 28068, 'playTime': 86718, 'kdr': 0.6221, 'kpm': 0.1287, 'hsr': 0.1882, 'kps': 48.7581, 'hpk': 17.0323, 'spm': 19.4202, 'accuracy': 0.3493, 'ivi': 657.3261, 'imageId': '13696', 'imageSrc': '/files/ps2/images/static/13696.png'},
{'itemId': '75005', 'vehicleId': '0', 'engName': 'NS-11C'
, 'name': 'NS-11C'
, 'kill': 170, 'teamKill': 0, 'killedBy': 82, 'headshot': 33, 'vehicleKill': 7, 'fire': 7333, 'hit': 2121, 'death': 269, 'damage': 110800, 'damageTakenBy': 49690, 'score': 38747, 'playTime': 217621, 'kdr': 0.632, 'kpm': 0.0469, 'hsr': 0.1941, 'kps': 43.1353, 'hpk': 12.4765, 'spm': 10.6829, 'accuracy': 0.2892, 'ivi': 561.4667, 'imageId': '8480', 'imageSrc': '/files/ps2/images/static/8480.png'},
{'itemId': '128', 'vehicleId': '0', 'engName': 'Mauler S6'
, 'name': 'S6 巨槌'
, 'kill': 165, 'teamKill': 0, 'killedBy': 0, 'headshot': 29, 'vehicleKill': 1, 'fire': 1386, 'hit': 690, 'death': 210, 'damage': 88963, 'damageTakenBy': 0, 'score': 35614, 'playTime': 23578, 'kdr': 0.7857, 'kpm': 0.4199, 'hsr': 0.1758, 'kps': 8.4, 'hpk': 4.1818, 'spm': 90.6286, 'accuracy': 0.4978, 'ivi': 874.9836, 'imageId': '5886', 'imageSrc': '/files/ps2/images/static/5886.png'},
{'itemId': '6011152', 'vehicleId': '0', 'engName': 'NSX Kuwa'
, 'name': 'NSX 锹'
, 'kill': 162, 'teamKill': 0, 'killedBy': 10, 'headshot': 42, 'vehicleKill': 1, 'fire': 6700, 'hit': 1960, 'death': 180, 'damage': 109406, 'damageTakenBy': 10715, 'score': 27021, 'playTime': 17727, 'kdr': 0.9, 'kpm': 0.5483, 'hsr': 0.2593, 'kps': 41.358, 'hpk': 12.0988, 'spm': 91.4571, 'accuracy': 0.2925, 'ivi': 758.4301, 'imageId': '93620', 'imageSrc': '/files/ps2/images/static/93620.png'},
{'itemId': '6009203', 'vehicleId': '0', 'engName': 'NS-66 Punisher'
, 'name': 'NS-66 惩罚者'
, 'kill': 129, 'teamKill': 0, 'killedBy': 80, 'headshot': 24, 'vehicleKill': 5, 'fire': 5919, 'hit': 2117, 'death': 205, 'damage': 102745, 'damageTakenBy': 47427, 'score': 19760, 'playTime': 39150, 'kdr': 0.6293, 'kpm': 0.1977, 'hsr': 0.186, 'kps': 45.8837, 'hpk': 16.4109, 'spm': 30.2835, 'accuracy': 0.3577, 'ivi': 665.4172, 'imageId': '92739', 'imageSrc': '/files/ps2/images/static/92739.png'},
{'itemId': '50560', 'vehicleId': '0', 'engName': 'NS Decimator'
, 'name': '纳能毁灭者'
, 'kill': 129, 'teamKill': 0, 'killedBy': 94, 'headshot': 0, 'vehicleKill': 75, 'fire': 881, 'hit': 602, 'death': 184, 'damage': 512816, 'damageTakenBy': 56202, 'score': 72509, 'playTime': 13062, 'kdr': 0.7011, 'kpm': 0.5926, 'hsr': 0.0, 'kps': 6.8295, 'hpk': 4.6667, 'spm': 333.0684, 'accuracy': 0.6833, 'ivi': 0.0, 'imageId': '85782', 'imageSrc': '/files/ps2/images/static/85782.png'},
{'itemId': '7389', 'vehicleId': '0', 'engName': 'LA3 Desperado'
, 'name': 'LA3 亡命徒'
, 'kill': 117, 'teamKill': 0, 'killedBy': 0, 'headshot': 28, 'vehicleKill': 1, 'fire': 3271, 'hit': 1154, 'death': 175, 'damage': 78122, 'damageTakenBy': 0, 'score': 19840, 'playTime': 27238, 'kdr': 0.6686, 'kpm': 0.2577, 'hsr': 0.2393, 'kps': 27.9573, 'hpk': 9.8632, 'spm': 43.7036, 'accuracy': 0.3528, 'ivi': 844.3013, 'imageId': '10232', 'imageSrc': '/files/ps2/images/static/10232.png'},
{'itemId': '7170', 'vehicleId': '0', 'engName': 'AC-X11'
, 'name': 'AC-X11'
, 'kill': 114, 'teamKill': 0, 'killedBy': 0, 'headshot': 30, 'vehicleKill': 5, 'fire': 3983, 'hit': 1174, 'death': 214, 'damage': 86328, 'damageTakenBy': 0, 'score': 21855, 'playTime': 44289, 'kdr': 0.5327, 'kpm': 0.1544, 'hsr': 0.2632, 'kps': 34.9386, 'hpk': 10.2982, 'spm': 29.6078, 'accuracy': 0.2948, 'ivi': 775.665, 'imageId': '5328', 'imageSrc': '/files/ps2/images/static/5328.png'},
{'itemId': '4', 'vehicleId': '0', 'engName': 'NC1 Gauss Rifle'
, 'name': 'NC1 高斯步枪'
, 'kill': 88, 'teamKill': 0, 'killedBy': 0, 'headshot': 21, 'vehicleKill': 2, 'fire': 4694, 'hit': 1170, 'death': 213, 'damage': 62357, 'damageTakenBy': 0, 'score': 19045, 'playTime': 22973, 'kdr': 0.4131, 'kpm': 0.2298, 'hsr': 0.2386, 'kps': 53.3409, 'hpk': 13.2955, 'spm': 49.741, 'accuracy': 0.2493, 'ivi': 594.8116, 'imageId': '5310', 'imageSrc': '/files/ps2/images/static/5310.png'},
{'itemId': '78', 'vehicleId': '0', 'engName': 'NC6 Gauss SAW'
, 'name': 'NC6 高斯 SAW'
, 'kill': 85, 'teamKill': 0, 'killedBy': 0, 'headshot': 19, 'vehicleKill': 3, 'fire': 6746, 'hit': 927, 'death': 190, 'damage': 62235, 'damageTakenBy': 0, 'score': 29131, 'playTime': 99177, 'kdr': 0.4474, 'kpm': 0.0514, 'hsr': 0.2235, 'kps': 79.3647, 'hpk': 10.9059, 'spm': 17.6236, 'accuracy': 0.1374, 'ivi': 307.1624, 'imageId': '5334', 'imageSrc': '/files/ps2/images/static/5334.png'},
{'itemId': '24003', 'vehicleId': '0', 'engName': 'LA80'
, 'name': 'LA80'
, 'kill': 74, 'teamKill': 0, 'killedBy': 0, 'headshot': 53, 'vehicleKill': 1, 'fire': 451, 'hit': 139, 'death': 84, 'damage': 40613, 'damageTakenBy': 0, 'score': 12968, 'playTime': 20018, 'kdr': 0.881, 'kpm': 0.2218, 'hsr': 0.7162, 'kps': 6.0946, 'hpk': 1.8784, 'spm': 38.869, 'accuracy': 0.3082, 'ivi': 2207.407, 'imageId': '5907', 'imageSrc': '/files/ps2/images/static/5907.png'},
{'itemId': '802106', 'vehicleId': '0', 'engName': 'NS-15M2'
, 'name': 'NS-15M2'
, 'kill': 67, 'teamKill': 0, 'killedBy': 303, 'headshot': 12, 'vehicleKill': 2, 'fire': 3217, 'hit': 1047, 'death': 67, 'damage': 41222, 'damageTakenBy': 166686, 'score': 25485, 'playTime': 25223, 'kdr': 1.0, 'kpm': 0.1594, 'hsr': 0.1791, 'kps': 48.0149, 'hpk': 15.6269, 'spm': 60.6232, 'accuracy': 0.3255, 'ivi': 582.9107, 'imageId': '81077', 'imageSrc': '/files/ps2/images/static/81077.png'},
{'itemId': '7388', 'vehicleId': '0', 'engName': 'LA8 Rebel'
, 'name': 'LA8 反抗军'
, 'kill': 63, 'teamKill': 0, 'killedBy': 0, 'headshot': 11, 'vehicleKill': 1, 'fire': 1350, 'hit': 361, 'death': 98, 'damage': 37176, 'damageTakenBy': 0, 'score': 10730, 'playTime': 24016, 'kdr': 0.6429, 'kpm': 0.1574, 'hsr': 0.1746, 'kps': 21.4286, 'hpk': 5.7302, 'spm': 26.8071, 'accuracy': 0.2674, 'ivi': 466.9018, 'imageId': '86856', 'imageSrc': '/files/ps2/images/static/86856.png'},
{'itemId': '7104', 'vehicleId': '0', 'engName': 'NC9 A-Tross'
, 'name': 'NC9 阿特罗斯'
, 'kill': 44, 'teamKill': 0, 'killedBy': 0, 'headshot': 14, 'vehicleKill': 2, 'fire': 1852, 'hit': 489, 'death': 104, 'damage': 31877, 'damageTakenBy': 0, 'score': 9356, 'playTime': 51633, 'kdr': 0.4231, 'kpm': 0.0511, 'hsr': 0.3182, 'kps': 42.0909, 'hpk': 11.1136, 'spm': 10.8721, 'accuracy': 0.264, 'ivi': 840.1237, 'imageId': '14468', 'imageSrc': '/files/ps2/images/static/14468.png'},
{'itemId': '75083', 'vehicleId': '0', 'engName': 'NS Baron G5'
, 'name': '纳能男爵 G5'
, 'kill': 42, 'teamKill': 0, 'killedBy': 43, 'headshot': 9, 'vehicleKill': 0, 'fire': 1797, 'hit': 305, 'death': 95, 'damage': 50605, 'damageTakenBy': 23076, 'score': 7517, 'playTime': 68574, 'kdr': 0.4421, 'kpm': 0.0367, 'hsr': 0.2143, 'kps': 42.7857, 'hpk': 7.2619, 'spm': 6.5771, 'accuracy': 0.1697, 'ivi': 363.7014, 'imageId': '14641', 'imageSrc': '/files/ps2/images/static/14641.png'},
{'itemId': '7174', 'vehicleId': '0', 'engName': 'AF-4A Bandit'
, 'name': 'AF-4A 强盗'
, 'kill': 42, 'teamKill': 0, 'killedBy': 0, 'headshot': 10, 'vehicleKill': 3, 'fire': 2128, 'hit': 601, 'death': 80, 'damage': 44304, 'damageTakenBy': 0, 'score': 8204, 'playTime': 17015, 'kdr': 0.525, 'kpm': 0.1481, 'hsr': 0.2381, 'kps': 50.6667, 'hpk': 14.3095, 'spm': 28.9298, 'accuracy': 0.2824, 'ivi': 672.44, 'imageId': '14120', 'imageSrc': '/files/ps2/images/static/14120.png'},
{'itemId': '804246', 'vehicleId': '0', 'engName': 'NSX Yumi'
, 'name': 'NSX 弓'
, 'kill': 39, 'teamKill': 0, 'killedBy': 13, 'headshot': 5, 'vehicleKill': 0, 'fire': 2111, 'hit': 507, 'death': 78, 'damage': 25762, 'damageTakenBy': 8246, 'score': 5300, 'playTime': 8141, 'kdr': 0.5, 'kpm': 0.2874, 'hsr': 0.1282, 'kps': 54.1282, 'hpk': 13.0, 'spm': 39.0615, 'accuracy': 0.2402, 'ivi': 307.9109, 'imageId': '88000', 'imageSrc': '/files/ps2/images/static/88000.png'},
{'itemId': '84', 'vehicleId': '0', 'engName': 'Shrike'
, 'name': '百舌鸟'
, 'kill': 39, 'teamKill': 0, 'killedBy': 2, 'headshot': 1, 'vehicleKill': 25, 'fire': 581, 'hit': 432, 'death': 82, 'damage': 235552, 'damageTakenBy': 0, 'score': 32380, 'playTime': 6752, 'kdr': 0.4756, 'kpm': 0.3466, 'hsr': 0.0256, 'kps': 14.8974, 'hpk': 11.0769, 'spm': 287.737, 'accuracy': 0.7435, 'ivi': 190.6527, 'imageId': '1593', 'imageSrc': '/files/ps2/images/static/1593.png'},
{'itemId': '7233', 'vehicleId': '0', 'engName': 'GD-22S'
, 'name': 'GD-22S'
, 'kill': 37, 'teamKill': 0, 'killedBy': 0, 'headshot': 10, 'vehicleKill': 0, 'fire': 1874, 'hit': 443, 'death': 50, 'damage': 27778, 'damageTakenBy': 0, 'score': 10992, 'playTime': 46290, 'kdr': 0.74, 'kpm': 0.048, 'hsr': 0.2703, 'kps': 50.6486, 'hpk': 11.973, 'spm': 14.2476, 'accuracy': 0.2364, 'ivi': 638.8993, 'imageId': '5340', 'imageSrc': '/files/ps2/images/static/5340.png'},
{'itemId': '7358', 'vehicleId': '0', 'engName': 'AF-18 Stalker'
, 'name': 'AF-18 追猎者'
, 'kill': 35, 'teamKill': 0, 'killedBy': 0, 'headshot': 8, 'vehicleKill': 2, 'fire': 1782, 'hit': 802, 'death': 64, 'damage': 36502, 'damageTakenBy': 0, 'score': 6723, 'playTime': 8643, 'kdr': 0.5469, 'kpm': 0.243, 'hsr': 0.2286, 'kps': 50.9143, 'hpk': 22.9143, 'spm': 46.6713, 'accuracy': 0.4501, 'ivi': 1028.6997, 'imageId': '5874', 'imageSrc': '/files/ps2/images/static/5874.png'},
{'itemId': '24002', 'vehicleId': '0', 'engName': 'Impetus'
, 'name': '冲力'
, 'kill': 32, 'teamKill': 0, 'killedBy': 0, 'headshot': 7, 'vehicleKill': 1, 'fire': 393, 'hit': 154, 'death': 42, 'damage': 21414, 'damageTakenBy': 0, 'score': 4817, 'playTime': 26146, 'kdr': 0.7619, 'kpm': 0.0734, 'hsr': 0.2188, 'kps': 12.2813, 'hpk': 4.8125, 'spm': 11.0541, 'accuracy': 0.3919, 'ivi': 857.1883, 'imageId': '5904', 'imageSrc': '/files/ps2/images/static/5904.png'},
{'itemId': '804179', 'vehicleId': '0', 'engName': 'NSX Masamune'
, 'name': 'NSX 政宗'
, 'kill': 29, 'teamKill': 0, 'killedBy': 2, 'headshot': 1, 'vehicleKill': 25, 'fire': 797, 'hit': 513, 'death': 35, 'damage': 165172, 'damageTakenBy': 598, 'score': 15265, 'playTime': 4494, 'kdr': 0.8286, 'kpm': 0.3872, 'hsr': 0.0345, 'kps': 27.4828, 'hpk': 17.6897, 'spm': 203.8051, 'accuracy': 0.6437, 'ivi': 221.953, 'imageId': '86952', 'imageSrc': '/files/ps2/images/static/86952.png'},
{'itemId': '6006332', 'vehicleId': '0', 'engName': 'NS-03 Thumper'
, 'name': 'NS-03 重击者'
, 'kill': 27, 'teamKill': 0, 'killedBy': 34, 'headshot': 0, 'vehicleKill': 1, 'fire': 958, 'hit': 265, 'death': 70, 'damage': 26512, 'damageTakenBy': 20039, 'score': 5805, 'playTime': 37086, 'kdr': 0.3857, 'kpm': 0.0437, 'hsr': 0.0, 'kps': 35.4815, 'hpk': 9.8148, 'spm': 9.3917, 'accuracy': 0.2766, 'ivi': 0.0, 'imageId': '90789', 'imageSrc': '/files/ps2/images/static/90789.png'},
{'itemId': '73', 'vehicleId': '0', 'engName': 'GR-22'
, 'name': 'GR-22'
, 'kill': 27, 'teamKill': 0, 'killedBy': 0, 'headshot': 3, 'vehicleKill': 0, 'fire': 1339, 'hit': 371, 'death': 60, 'damage': 17424, 'damageTakenBy': 0, 'score': 4836, 'playTime': 6338, 'kdr': 0.45, 'kpm': 0.2556, 'hsr': 0.1111, 'kps': 49.5926, 'hpk': 13.7407, 'spm': 45.781, 'accuracy': 0.2771, 'ivi': 307.8583, 'imageId': '5313', 'imageSrc': '/files/ps2/images/static/5313.png'},
{'itemId': '6004197', 'vehicleId': '0', 'engName': 'NSX-P Naginata'
, 'name': 'NSX 薙刀 铂金版'
, 'kill': 24, 'teamKill': 0, 'killedBy': 151, 'headshot': 8, 'vehicleKill': 2, 'fire': 1281, 'hit': 285, 'death': 47, 'damage': 15139, 'damageTakenBy': 89448, 'score': 8759, 'playTime': 4296, 'kdr': 0.5106, 'kpm': 0.3352, 'hsr': 0.3333, 'kps': 53.375, 'hpk': 11.875, 'spm': 122.3324, 'accuracy': 0.2225, 'ivi': 741.6081, 'imageId': '89827', 'imageSrc': '/files/ps2/images/static/89827.png'},
{'itemId': '6003793', 'vehicleId': '0', 'engName': 'NS-44L Showdown'
, 'name': 'NS-44L 摊牌'
, 'kill': 24, 'teamKill': 0, 'killedBy': 6, 'headshot': 9, 'vehicleKill': 1, 'fire': 238, 'hit': 83, 'death': 45, 'damage': 17522, 'damageTakenBy': 3920, 'score': 4224, 'playTime': 31159, 'kdr': 0.5333, 'kpm': 0.0462, 'hsr': 0.375, 'kps': 9.9167, 'hpk': 3.4583, 'spm': 8.1338, 'accuracy': 0.3487, 'ivi': 1307.7731, 'imageId': '88586', 'imageSrc': '/files/ps2/images/static/88586.png'},
{'itemId': '7301', 'vehicleId': '0', 'engName': 'AF-8 RailJack'
, 'name': 'AF-8 铺轨机'
, 'kill': 23, 'teamKill': 0, 'killedBy': 0, 'headshot': 17, 'vehicleKill': 0, 'fire': 134, 'hit': 47, 'death': 28, 'damage': 14072, 'damageTakenBy': 0, 'score': 3932, 'playTime': 8684, 'kdr': 0.8214, 'kpm': 0.1589, 'hsr': 0.7391, 'kps': 5.8261, 'hpk': 2.0435, 'spm': 27.1672, 'accuracy': 0.3507, 'ivi': 2592.4724, 'imageId': '13752', 'imageSrc': '/files/ps2/images/static/13752.png'},
{'itemId': '6014404', 'vehicleId': '0', 'engName': 'NS-11A Frontline'
, 'name': 'NS-11A 前线'
, 'kill': 22, 'teamKill': 0, 'killedBy': 1, 'headshot': 10, 'vehicleKill': 0, 'fire': 927, 'hit': 227, 'death': 35, 'damage': 13079, 'damageTakenBy': 666, 'score': 4877, 'playTime': 2849, 'kdr': 0.6286, 'kpm': 0.4633, 'hsr': 0.4545, 'kps': 42.1364, 'hpk': 10.3182, 'spm': 102.7097, 'accuracy': 0.2449, 'ivi': 1113.0725, 'imageId': '95541', 'imageSrc': '/files/ps2/images/static/95541.png'},
{'itemId': '6011432', 'vehicleId': '0', 'engName': 'Seeker HLX'
, 'name': '追踪者 HLX 重弩'
, 'kill': 21, 'teamKill': 0, 'killedBy': 8, 'headshot': 10, 'vehicleKill': 0, 'fire': 409, 'hit': 90, 'death': 38, 'damage': 22485, 'damageTakenBy': 5049, 'score': 3398, 'playTime': 3582, 'kdr': 0.5526, 'kpm': 0.3518, 'hsr': 0.4762, 'kps': 19.4762, 'hpk': 4.2857, 'spm': 56.9179, 'accuracy': 0.22, 'ivi': 1047.8519, 'imageId': '94233', 'imageSrc': '/files/ps2/images/static/94233.png'},
{'itemId': '6004209', 'vehicleId': '0', 'engName': 'MGR-M1 Bishop'
, 'name': 'MGR-M1 主教'
, 'kill': 21, 'teamKill': 0, 'killedBy': 0, 'headshot': 2, 'vehicleKill': 5, 'fire': 390, 'hit': 150, 'death': 29, 'damage': 15336, 'damageTakenBy': 0, 'score': 5208, 'playTime': 5878, 'kdr': 0.7241, 'kpm': 0.2144, 'hsr': 0.0952, 'kps': 18.5714, 'hpk': 7.1429, 'spm': 53.1609, 'accuracy': 0.3846, 'ivi': 366.3004, 'imageId': '89146', 'imageSrc': '/files/ps2/images/static/89146.png'},
{'itemId': '7528', 'vehicleId': '0', 'engName': 'NC05 Jackhammer'
, 'name': 'NC05 凿岩机'
, 'kill': 20, 'teamKill': 0, 'killedBy': 0, 'headshot': 5, 'vehicleKill': 0, 'fire': 324, 'hit': 91, 'death': 44, 'damage': 12271, 'damageTakenBy': 0, 'score': 7144, 'playTime': 5667, 'kdr': 0.4545, 'kpm': 0.2118, 'hsr': 0.25, 'kps': 16.2, 'hpk': 4.55, 'spm': 75.6379, 'accuracy': 0.2809, 'ivi': 702.1605, 'imageId': '2438', 'imageSrc': '/files/ps2/images/static/2438.png'},
{'itemId': '6006239', 'vehicleId': '0', 'engName': 'NSX-P Tengu'
, 'name': 'NSX 天狗 铂金版'
, 'kill': 20, 'teamKill': 0, 'killedBy': 83, 'headshot': 4, 'vehicleKill': 2, 'fire': 1101, 'hit': 404, 'death': 44, 'damage': 14061, 'damageTakenBy': 50461, 'score': 6952, 'playTime': 17888, 'kdr': 0.4545, 'kpm': 0.0671, 'hsr': 0.2, 'kps': 55.05, 'hpk': 20.2, 'spm': 23.3184, 'accuracy': 0.3669, 'ivi': 733.8783, 'imageId': '90538', 'imageSrc': '/files/ps2/images/static/90538.png'},
{'itemId': '804252', 'vehicleId': '0', 'engName': 'NSX Tomoe'
, 'name': 'NSX 巴纹'
, 'kill': 16, 'teamKill': 0, 'killedBy': 42, 'headshot': 6, 'vehicleKill': 0, 'fire': 700, 'hit': 228, 'death': 36, 'damage': 10241, 'damageTakenBy': 22519, 'score': 3345, 'playTime': 3615, 'kdr': 0.4444, 'kpm': 0.2656, 'hsr': 0.375, 'kps': 43.75, 'hpk': 14.25, 'spm': 55.5187, 'accuracy': 0.3257, 'ivi': 1221.4286, 'imageId': '86955', 'imageSrc': '/files/ps2/images/static/86955.png'},
{'itemId': '87', 'vehicleId': '0', 'engName': 'NC14 Bolt Driver'
, 'name': 'NC14 雷电'
, 'kill': 16, 'teamKill': 0, 'killedBy': 0, 'headshot': 9, 'vehicleKill': 1, 'fire': 100, 'hit': 36, 'death': 11, 'damage': 9681, 'damageTakenBy': 0, 'score': 4068, 'playTime': 10030, 'kdr': 1.4545, 'kpm': 0.0957, 'hsr': 0.5625, 'kps': 6.25, 'hpk': 2.25, 'spm': 24.335, 'accuracy': 0.36, 'ivi': 2025.0, 'imageId': '5895', 'imageSrc': '/files/ps2/images/static/5895.png'},
{'itemId': '6011153', 'vehicleId': '0', 'engName': 'NSX Kappa'
, 'name': 'NSX 河童'
, 'kill': 15, 'teamKill': 0, 'killedBy': 7, 'headshot': 5, 'vehicleKill': 0, 'fire': 460, 'hit': 172, 'death': 12, 'damage': 11136, 'damageTakenBy': 4182, 'score': 2220, 'playTime': 1957, 'kdr': 1.25, 'kpm': 0.4599, 'hsr': 0.3333, 'kps': 30.6667, 'hpk': 11.4667, 'spm': 68.0634, 'accuracy': 0.3739, 'ivi': 1246.3768, 'imageId': '93632', 'imageSrc': '/files/ps2/images/static/93632.png'},
{'itemId': '24008', 'vehicleId': '0', 'engName': 'Warden'
, 'name': '监察队员'
, 'kill': 14, 'teamKill': 0, 'killedBy': 0, 'headshot': 3, 'vehicleKill': 0, 'fire': 917, 'hit': 300, 'death': 105, 'damage': 33991, 'damageTakenBy': 0, 'score': 6294, 'playTime': 16210, 'kdr': 0.1333, 'kpm': 0.0518, 'hsr': 0.2143, 'kps': 65.5, 'hpk': 21.4286, 'spm': 23.2967, 'accuracy': 0.3272, 'ivi': 701.0438, 'imageId': '5880', 'imageSrc': '/files/ps2/images/static/5880.png'},
{'itemId': '802969', 'vehicleId': '0', 'engName': 'NS-R3 Swarm'
, 'name': 'NS-R3 蜂群'
, 'kill': 13, 'teamKill': 0, 'killedBy': 8, 'headshot': 0, 'vehicleKill': 9, 'fire': 435, 'hit': 286, 'death': 42, 'damage': 103615, 'damageTakenBy': 63, 'score': 6844, 'playTime': 5865, 'kdr': 0.3095, 'kpm': 0.133, 'hsr': 0.0, 'kps': 33.4615, 'hpk': 22.0, 'spm': 70.0153, 'accuracy': 0.6575, 'ivi': 0.0, 'imageId': '84643', 'imageSrc': '/files/ps2/images/static/84643.png'},
{'itemId': '6011538', 'vehicleId': '0', 'engName': 'UBP-1 Starfish'
, 'name': 'UBP-1 海星'
, 'kill': 13, 'teamKill': 0, 'killedBy': 0, 'headshot': 0, 'vehicleKill': 0, 'fire': 176, 'hit': 65, 'death': 22, 'damage': 9583, 'damageTakenBy': 353, 'score': 1422, 'playTime': 1910, 'kdr': 0.5909, 'kpm': 0.4084, 'hsr': 0.0, 'kps': 13.5385, 'hpk': 5.0, 'spm': 44.6702, 'accuracy': 0.3693, 'ivi': 0.0, 'imageId': '94518', 'imageSrc': '/files/ps2/images/static/94518.png'},
{'itemId': '6011528', 'vehicleId': '0', 'engName': 'UBR-300 Swordfish'
, 'name': 'UBR-300 剑鱼'
, 'kill': 13, 'teamKill': 0, 'killedBy': 3, 'headshot': 3, 'vehicleKill': 0, 'fire': 639, 'hit': 165, 'death': 41, 'damage': 10400, 'damageTakenBy': 1881, 'score': 2578, 'playTime': 3788, 'kdr': 0.3171, 'kpm': 0.2059, 'hsr': 0.2308, 'kps': 49.1538, 'hpk': 12.6923, 'spm': 40.8342, 'accuracy': 0.2582, 'ivi': 595.883, 'imageId': '94515', 'imageSrc': '/files/ps2/images/static/94515.png'},
{'itemId': '2308', 'vehicleId': '0', 'engName': 'Hunter QCX'
, 'name': '猎人 QCX 十字弩'
, 'kill': 12, 'teamKill': 0, 'killedBy': 11, 'headshot': 1, 'vehicleKill': 3, 'fire': 461, 'hit': 126, 'death': 22, 'damage': 39104, 'damageTakenBy': 5253, 'score': 4511, 'playTime': 6291, 'kdr': 0.5455, 'kpm': 0.1144, 'hsr': 0.0833, 'kps': 38.4167, 'hpk': 10.5, 'spm': 43.0234, 'accuracy': 0.2733, 'ivi': 227.7657, 'imageId': '13681', 'imageSrc': '/files/ps2/images/static/13681.png'},
{'itemId': '69999', 'vehicleId': '0', 'engName': 'NS-11P'
, 'name': 'NS-11A 铂金版'
, 'kill': 11, 'teamKill': 0, 'killedBy': 74, 'headshot': 3, 'vehicleKill': 0, 'fire': 811, 'hit': 202, 'death': 40, 'damage': 8631, 'damageTakenBy': 49732, 'score': 5486, 'playTime': 4720, 'kdr': 0.275, 'kpm': 0.1398, 'hsr': 0.2727, 'kps': 73.7273, 'hpk': 18.3636, 'spm': 69.7373, 'accuracy': 0.2491, 'ivi': 679.296, 'imageId': '6891', 'imageSrc': '/files/ps2/images/static/6891.png'},
{'itemId': '6003752', 'vehicleId': '0', 'engName': 'NSX-P Tanto'
, 'name': 'NSX 短刀 铂金版'
, 'kill': 10, 'teamKill': 0, 'killedBy': 87, 'headshot': 1, 'vehicleKill': 2, 'fire': 904, 'hit': 308, 'death': 34, 'damage': 13022, 'damageTakenBy': 50522, 'score': 3847, 'playTime': 6207, 'kdr': 0.2941, 'kpm': 0.0967, 'hsr': 0.1, 'kps': 90.4, 'hpk': 30.8, 'spm': 37.187, 'accuracy': 0.3407, 'ivi': 340.708, 'imageId': '88171', 'imageSrc': '/files/ps2/images/static/88171.png'},
{'itemId': '33002', 'vehicleId': '0', 'engName': 'NC15 Phoenix'
, 'name': 'NC15 凤凰'
, 'kill': 5, 'teamKill': 0, 'killedBy': 0, 'headshot': 0, 'vehicleKill': 2, 'fire': 225, 'hit': 83, 'death': 10, 'damage': 56478, 'damageTakenBy': 0, 'score': 7150, 'playTime': 2926, 'kdr': 0.5, 'kpm': 0.1025, 'hsr': 0.0, 'kps': 45.0, 'hpk': 16.6, 'spm': 146.6165, 'accuracy': 0.3689, 'ivi': 0.0, 'imageId': '8107', 'imageSrc': '/files/ps2/images/static/8107.png'},
{'itemId': '802771', 'vehicleId': '0', 'engName': 'NS-AM7 Archer'
, 'name': 'NS-AM7 弓箭手'
, 'kill': 4, 'teamKill': 0, 'killedBy': 8, 'headshot': 1, 'vehicleKill': 2, 'fire': 198, 'hit': 92, 'death': 52, 'damage': 23553, 'damageTakenBy': 11884, 'score': 2656, 'playTime': 12315, 'kdr': 0.0769, 'kpm': 0.0195, 'hsr': 0.25, 'kps': 49.5, 'hpk': 23.0, 'spm': 12.9403, 'accuracy': 0.4646, 'ivi': 1161.6162, 'imageId': '83948', 'imageSrc': '/files/ps2/images/static/83948.png'},
{'itemId': '33004', 'vehicleId': '0', 'engName': 'Hawk GD-68'
, 'name': 'GD-68 鹰式'
, 'kill': 4, 'teamKill': 0, 'killedBy': 0, 'headshot': 0, 'vehicleKill': 2, 'fire': 33, 'hit': 20, 'death': 1, 'damage': 13571, 'damageTakenBy': 0, 'score': 5617, 'playTime': 496, 'kdr': 4.0, 'kpm': 0.4839, 'hsr': 0.0, 'kps': 8.25, 'hpk': 5.0, 'spm': 679.4758, 'accuracy': 0.6061, 'ivi': 0.0, 'imageId': '1593', 'imageSrc': '/files/ps2/images/static/1593.png'},
{'itemId': '40002', 'vehicleId': '0', 'engName': 'LA39 Bruiser'
, 'name': 'LA39 拳师'
, 'kill': 2, 'teamKill': 0, 'killedBy': 0, 'headshot': 0, 'vehicleKill': 0, 'fire': 28, 'hit': 16, 'death': 25, 'damage': 2741, 'damageTakenBy': 0, 'score': 4640, 'playTime': 3773, 'kdr': 0.08, 'kpm': 0.0318, 'hsr': 0.0, 'kps': 14.0, 'hpk': 8.0, 'spm': 73.7874, 'accuracy': 0.5714, 'ivi': 0.0, 'imageId': '8078', 'imageSrc': '/files/ps2/images/static/8078.png'},
{'itemId': '6009101', 'vehicleId': '0', 'engName': 'NS-30 Tranquility'
, 'name': 'NS-30 宁静'
, 'kill': 2, 'teamKill': 0, 'killedBy': 6, 'headshot': 0, 'vehicleKill': 0, 'fire': 40, 'hit': 12, 'death': 6, 'damage': 1344, 'damageTakenBy': 3454, 'score': 526, 'playTime': 32825, 'kdr': 0.3333, 'kpm': 0.0037, 'hsr': 0.0, 'kps': 20.0, 'hpk': 6.0, 'spm': 0.9615, 'accuracy': 0.3, 'ivi': 0.0, 'imageId': '92736', 'imageSrc': '/files/ps2/images/static/92736.png'},
{'itemId': '50561', 'vehicleId': '0', 'engName': 'NS Annihilator '
, 'name': '纳能歼灭者 '
, 'kill': 2, 'teamKill': 0, 'killedBy': 18, 'headshot': 0, 'vehicleKill': 1, 'fire': 8, 'hit': 6, 'death': 3, 'damage': 4534, 'damageTakenBy': 271, 'score': 5819, 'playTime': 229, 'kdr': 0.6667, 'kpm': 0.524, 'hsr': 0.0, 'kps': 4.0, 'hpk': 3.0, 'spm': 1524.6288, 'accuracy': 0.75, 'ivi': 0.0, 'imageId': '85773', 'imageSrc': '/files/ps2/images/static/85773.png'},
{'itemId': '6003943', 'vehicleId': '0', 'engName': 'NS-357 IA'
, 'name': 'NS-357 IA'
, 'kill': 1, 'teamKill': 0, 'killedBy': 8, 'headshot': 1, 'vehicleKill': 0, 'fire': 31, 'hit': 5, 'death': 4, 'damage': 999, 'damageTakenBy': 2740, 'score': 265, 'playTime': 482, 'kdr': 0.25, 'kpm': 0.1245, 'hsr': 1.0, 'kps': 31.0, 'hpk': 5.0, 'spm': 32.9876, 'accuracy': 0.1613, 'ivi': 1612.9032, 'imageId': '88583', 'imageSrc': '/files/ps2/images/static/88583.png'},
{'itemId': '2', 'vehicleId': '0', 'engName': 'NC4 Mag-Shot'
, 'name': 'NC4 电磁枪'
, 'kill': 1, 'teamKill': 0, 'killedBy': 0, 'headshot': 0, 'vehicleKill': 0, 'fire': 731, 'hit': 49, 'death': 16, 'damage': 3544, 'damageTakenBy': 0, 'score': 2004, 'playTime': 5312, 'kdr': 0.0625, 'kpm': 0.0113, 'hsr': 0.0, 'kps': 731.0, 'hpk': 49.0, 'spm': 22.6355, 'accuracy': 0.067, 'ivi': 0.0, 'imageId': '2432', 'imageSrc': '/files/ps2/images/static/2432.png'},
{'itemId': '6009782', 'vehicleId': '0', 'engName': 'C-4 Present'
, 'name': 'C-4 礼盒'
, 'kill': 1, 'teamKill': 0, 'killedBy': 1, 'headshot': 0, 'vehicleKill': 1, 'fire': 11, 'hit': 4, 'death': 1, 'damage': 4000, 'damageTakenBy': 500, 'score': 99, 'playTime': 98, 'kdr': 1.0, 'kpm': 0.6122, 'hsr': 0.0, 'kps': 11.0, 'hpk': 4.0, 'spm': 60.6122, 'accuracy': 0.3636, 'ivi': 0.0, 'imageId': '93277', 'imageSrc': '/files/ps2/images/static/93277.png'},
{'itemId': '7390', 'vehicleId': '0', 'engName': 'NC08 Mag-Scatter'
, 'name': 'NC08 电磁霰弹'
, 'kill': 1, 'teamKill': 0, 'killedBy': 0, 'headshot': 0, 'vehicleKill': 0, 'fire': 22, 'hit': 14, 'death': 4, 'damage': 2074, 'damageTakenBy': 0, 'score': 315, 'playTime': 477, 'kdr': 0.25, 'kpm': 0.1258, 'hsr': 0.0, 'kps': 22.0, 'hpk': 14.0, 'spm': 39.6226, 'accuracy': 0.6364, 'ivi': 0.0, 'imageId': '79685', 'imageSrc': '/files/ps2/images/static/79685.png'},
{'itemId': '802733', 'vehicleId': '0', 'engName': 'NS-44L Blackhand'
, 'name': 'NS-44L 黑手党'
, 'kill': 0, 'teamKill': 0, 'killedBy': 27, 'headshot': 0, 'vehicleKill': 0, 'fire': 0, 'hit': 0, 'death': 0, 'damage': 0, 'damageTakenBy': 15899, 'score': 300, 'playTime': 35, 'kdr': 0.0, 'kpm': 0.0, 'hsr': 0.0, 'kps': 0.0, 'hpk': 0.0, 'spm': 514.2857, 'accuracy': 0.0, 'ivi': 0.0, 'imageId': '83225', 'imageSrc': '/files/ps2/images/static/83225.png'},
{'itemId': '6009009', 'vehicleId': '0', 'engName': 'Flash XS-1'
, 'name': '火花 XS-1'
, 'kill': 0, 'teamKill': 0, 'killedBy': 0, 'headshot': 0, 'vehicleKill': 0, 'fire': 26, 'hit': 0, 'death': 1, 'damage': 0, 'damageTakenBy': 0, 'score': 0, 'playTime': 265, 'kdr': 0.0, 'kpm': 0.0, 'hsr': 0.0, 'kps': 26.0, 'hpk': 0.0, 'spm': 0.0, 'accuracy': 0.0, 'ivi': 0.0, 'imageId': '93387', 'imageSrc': '/files/ps2/images/static/93387.png'},
{'itemId': '2311', 'vehicleId': '0', 'engName': 'NS-30 Vandal'
, 'name': 'NS-30 汪达尔'
, 'kill': 0, 'teamKill': 0, 'killedBy': 14, 'headshot': 0, 'vehicleKill': 0, 'fire': 0, 'hit': 0, 'death': 0, 'damage': 0, 'damageTakenBy': 9685, 'score': 779, 'playTime': 384, 'kdr': 0.0, 'kpm': 0.0, 'hsr': 0.0, 'kps': 0.0, 'hpk': 0.0, 'spm': 121.7188, 'accuracy': 0.0, 'ivi': 0.0, 'imageId': '13779', 'imageSrc': '/files/ps2/images/static/13779.png'},
{'itemId': '75071', 'vehicleId': '0', 'engName': 'NS-357 Underboss'
, 'name': 'NS-357 二老板'
, 'kill': 0, 'teamKill': 0, 'killedBy': 60, 'headshot': 0, 'vehicleKill': 0, 'fire': 0, 'hit': 0, 'death': 0, 'damage': 0, 'damageTakenBy': 30675, 'score': 1179, 'playTime': 190, 'kdr': 0.0, 'kpm': 0.0, 'hsr': 0.0, 'kps': 0.0, 'hpk': 0.0, 'spm': 372.3158, 'accuracy': 0.0, 'ivi': 0.0, 'imageId': '8742', 'imageSrc': '/files/ps2/images/static/8742.png'},
{'itemId': '6002661', 'vehicleId': '0', 'engName': 'NS-44L "Ravenous" Blackhand'
, 'name': 'NS-44L “饕餮” 黑手党'
, 'kill': 0, 'teamKill': 0, 'killedBy': 2, 'headshot': 0, 'vehicleKill': 0, 'fire': 0, 'hit': 0, 'death': 0, 'damage': 0, 'damageTakenBy': 1370, 'score': 25, 'playTime': 295, 'kdr': 0.0, 'kpm': 0.0, 'hsr': 0.0, 'kps': 0.0, 'hpk': 0.0, 'spm': 5.0847, 'accuracy': 0.0, 'ivi': 0.0, 'imageId': '86862', 'imageSrc': '/files/ps2/images/static/86862.png'},
{'itemId': '1264', 'vehicleId': '0', 'engName': 'Ammunition Package 2'
, 'name': '弹药包 2 级'
, 'kill': 0, 'teamKill': 0, 'killedBy': 0, 'headshot': 0, 'vehicleKill': 0, 'fire': 0, 'hit': 0, 'death': 0, 'damage': 0, 'damageTakenBy': 0, 'score': 0, 'playTime': 1, 'kdr': 0.0, 'kpm': 0.0, 'hsr': 0.0, 'kps': 0.0, 'hpk': 0.0, 'spm': 0.0, 'accuracy': 0.0, 'ivi': 0.0, 'imageId': '1474', 'imageSrc': '/files/ps2/images/static/1474.png'},
{'itemId': '803617', 'vehicleId': '0', 'engName': 'HIVE'
, 'name': '蜂巢'
, 'kill': 0, 'teamKill': 0, 'killedBy': 0, 'headshot': 0, 'vehicleKill': 0, 'fire': 0, 'hit': 0, 'death': 0, 'damage': 0, 'damageTakenBy': 0, 'score': 0, 'playTime': 1, 'kdr': 0.0, 'kpm': 0.0, 'hsr': 0.0, 'kps': 0.0, 'hpk': 0.0, 'spm': 0.0, 'accuracy': 0.0, 'ivi': 0.0, 'imageId': '85833', 'imageSrc': '/files/ps2/images/static/85833.png'},
{'itemId': '6004714', 'vehicleId': '0', 'engName': 'Soldier Soaker'
, 'name': '单兵水枪'
, 'kill': 0, 'teamKill': 0, 'killedBy': 0, 'headshot': 0, 'vehicleKill': 0, 'fire': 0, 'hit': 0, 'death': 0, 'damage': 0, 'damageTakenBy': 0, 'score': 0, 'playTime': 1, 'kdr': 0.0, 'kpm': 0.0, 'hsr': 0.0, 'kps': 0.0, 'hpk': 0.0, 'spm': 0.0, 'accuracy': 0.0, 'ivi': 0.0, 'imageId': '89280', 'imageSrc': '/files/ps2/images/static/89280.png'},
{'itemId': '1268', 'vehicleId': '0', 'engName': 'Ammunition Package 6'
, 'name': '弹药包 6 级'
, 'kill': 0, 'teamKill': 0, 'killedBy': 0, 'headshot': 0, 'vehicleKill': 0, 'fire': 195, 'hit': 0, 'death': 1, 'damage': 0, 'damageTakenBy': 0, 'score': 0, 'playTime': 277, 'kdr': 0.0, 'kpm': 0.0, 'hsr': 0.0, 'kps': 195.0, 'hpk': 0.0, 'spm': 0.0, 'accuracy': 0.0, 'ivi': 0.0, 'imageId': '1474', 'imageSrc': '/files/ps2/images/static/1474.png'},
{'itemId': '1267', 'vehicleId': '0', 'engName': 'Ammunition Package 5'
, 'name': '弹药包 5 级'
, 'kill': 0, 'teamKill': 0, 'killedBy': 0, 'headshot': 0, 'vehicleKill': 0, 'fire': 0, 'hit': 0, 'death': 0, 'damage': 0, 'damageTakenBy': 0, 'score': 0, 'playTime': 1, 'kdr': 0.0, 'kpm': 0.0, 'hsr': 0.0, 'kps': 0.0, 'hpk': 0.0, 'spm': 0.0, 'accuracy': 0.0, 'ivi': 0.0, 'imageId': '1474', 'imageSrc': '/files/ps2/images/static/1474.png'},
{'itemId': '6011155', 'vehicleId': '0', 'engName': 'NSX Sesshin'
, 'name': 'NSX 摄心'
, 'kill': 0, 'teamKill': 0, 'killedBy': 0, 'headshot': 0, 'vehicleKill': 0, 'fire': 0, 'hit': 0, 'death': 0, 'damage': 0, 'damageTakenBy': 439, 'score': 39, 'playTime': 1140, 'kdr': 0.0, 'kpm': 0.0, 'hsr': 0.0, 'kps': 0.0, 'hpk': 0.0, 'spm': 2.0526, 'accuracy': 0.0, 'ivi': 0.0, 'imageId': '93635', 'imageSrc': '/files/ps2/images/static/93635.png'},
{'itemId': '1266', 'vehicleId': '0', 'engName': 'Ammunition Package 4'
, 'name': '弹药包 4 级'
, 'kill': 0, 'teamKill': 0, 'killedBy': 0, 'headshot': 0, 'vehicleKill': 0, 'fire': 0, 'hit': 0, 'death': 0, 'damage': 0, 'damageTakenBy': 0, 'score': 0, 'playTime': 1, 'kdr': 0.0, 'kpm': 0.0, 'hsr': 0.0, 'kps': 0.0, 'hpk': 0.0, 'spm': 0.0, 'accuracy': 0.0, 'ivi': 0.0, 'imageId': '1474', 'imageSrc': '/files/ps2/images/static/1474.png'},
{'itemId': '1265', 'vehicleId': '0', 'engName': 'Ammunition Package 3'
, 'name': '弹药包 3 级'
, 'kill': 0, 'teamKill': 0, 'killedBy': 0, 'headshot': 0, 'vehicleKill': 0, 'fire': 0, 'hit': 0, 'death': 0, 'damage': 0, 'damageTakenBy': 0, 'score': 0, 'playTime': 1, 'kdr': 0.0, 'kpm': 0.0, 'hsr': 0.0, 'kps': 0.0, 'hpk': 0.0, 'spm': 0.0, 'accuracy': 0.0, 'ivi': 0.0, 'imageId': '1474', 'imageSrc': '/files/ps2/images/static/1474.png'},
{'itemId': '6014305', 'vehicleId': '0', 'engName': 'Conduit'
, 'name': '导线'
, 'kill': 0, 'teamKill': 0, 'killedBy': 0, 'headshot': 0, 'vehicleKill': 0, 'fire': 0, 'hit': 0, 'death': 0, 'damage': 0, 'damageTakenBy': 0, 'score': 0, 'playTime': 312, 'kdr': 0.0, 'kpm': 0.0, 'hsr': 0.0, 'kps': 0.0, 'hpk': 0.0, 'spm': 0.0, 'accuracy': 0.0, 'ivi': 0.0, 'imageId': '95696', 'imageSrc': '/files/ps2/images/static/95696.png'},
{'itemId': '40001', 'vehicleId': '0', 'engName': 'GD-66 Claw'
, 'name': 'GD-66 利爪'
, 'kill': 0, 'teamKill': 0, 'killedBy': 0, 'headshot': 0, 'vehicleKill': 0, 'fire': 10, 'hit': 5, 'death': 6, 'damage': 1013, 'damageTakenBy': 0, 'score': 1374, 'playTime': 875, 'kdr': 0.0, 'kpm': 0.0, 'hsr': 0.0, 'kps': 10.0, 'hpk': 5.0, 'spm': 94.2171, 'accuracy': 0.5, 'ivi': 0.0, 'imageId': '8075', 'imageSrc': '/files/ps2/images/static/8075.png'},
{'itemId': '6005713', 'vehicleId': '0', 'engName': 'The Little Helper'
, 'name': '小帮手'
, 'kill': 0, 'teamKill': 0, 'killedBy': 3, 'headshot': 0, 'vehicleKill': 0, 'fire': 0, 'hit': 0, 'death': 0, 'damage': 0, 'damageTakenBy': 1970, 'score': 0, 'playTime': 235, 'kdr': 0.0, 'kpm': 0.0, 'hsr': 0.0, 'kps': 0.0, 'hpk': 0.0, 'spm': 0.0, 'accuracy': 0.0, 'ivi': 0.0, 'imageId': '90014', 'imageSrc': '/files/ps2/images/static/90014.png'},
{'itemId': '803605', 'vehicleId': '0', 'engName': 'Rampart Wall'
, 'name': '壁垒'
, 'kill': 0, 'teamKill': 0, 'killedBy': 0, 'headshot': 0, 'vehicleKill': 0, 'fire': 248, 'hit': 0, 'death': 0, 'damage': 0, 'damageTakenBy': 0, 'score': 0, 'playTime': 8272, 'kdr': 0.0, 'kpm': 0.0, 'hsr': 0.0, 'kps': 248.0, 'hpk': 0.0, 'spm': 0.0, 'accuracy': 0.0, 'ivi': 0.0, 'imageId': '85830', 'imageSrc': '/files/ps2/images/static/85830.png'},
{'itemId': '6004611', 'vehicleId': '0', 'engName': 'Bending Beacon'
, 'name': '扭曲信标'
, 'kill': 0, 'teamKill': 0, 'killedBy': 0, 'headshot': 0, 'vehicleKill': 0, 'fire': 0, 'hit': 0, 'death': 0, 'damage': 0, 'damageTakenBy': 0, 'score': 0, 'playTime': 1, 'kdr': 0.0, 'kpm': 0.0, 'hsr': 0.0, 'kps': 0.0, 'hpk': 0.0, 'spm': 0.0, 'accuracy': 0.0, 'ivi': 0.0, 'imageId': '3655', 'imageSrc': '/files/ps2/images/static/3655.png'},
{'itemId': '803611', 'vehicleId': '0', 'engName': 'Sunderer Garage'
, 'name': '决裂者车库'
, 'kill': 0, 'teamKill': 0, 'killedBy': 0, 'headshot': 0, 'vehicleKill': 0, 'fire': 47, 'hit': 0, 'death': 0, 'damage': 0, 'damageTakenBy': 0, 'score': 0, 'playTime': 799, 'kdr': 0.0, 'kpm': 0.0, 'hsr': 0.0, 'kps': 47.0, 'hpk': 0.0, 'spm': 0.0, 'accuracy': 0.0, 'ivi': 0.0, 'imageId': '86100', 'imageSrc': '/files/ps2/images/static/86100.png'},
{'itemId': '804702', 'vehicleId': '0', 'engName': 'Cortium Silo'
, 'name': '钶金矿仓'
, 'kill': 0, 'teamKill': 0, 'killedBy': 0, 'headshot': 0, 'vehicleKill': 0, 'fire': 347, 'hit': 0, 'death': 1, 'damage': 0, 'damageTakenBy': 0, 'score': 0, 'playTime': 2522, 'kdr': 0.0, 'kpm': 0.0, 'hsr': 0.0, 'kps': 347.0, 'hpk': 0.0, 'spm': 0.0, 'accuracy': 0.0, 'ivi': 0.0, 'imageId': '85937', 'imageSrc': '/files/ps2/images/static/85937.png'},
{'itemId': '803614', 'vehicleId': '0', 'engName': 'Bunker'
, 'name': '地堡'
, 'kill': 0, 'teamKill': 0, 'killedBy': 0, 'headshot': 0, 'vehicleKill': 0, 'fire': 24, 'hit': 0, 'death': 2, 'damage': 0, 'damageTakenBy': 0, 'score': 0, 'playTime': 480, 'kdr': 0.0, 'kpm': 0.0, 'hsr': 0.0, 'kps': 24.0, 'hpk': 0.0, 'spm': 0.0, 'accuracy': 0.0, 'ivi': 0.0, 'imageId': '85827', 'imageSrc': '/files/ps2/images/static/85827.png'},
{'itemId': '16029', 'vehicleId': '0', 'engName': 'NCM3 Raven'
, 'name': 'NCM3 渡鸦'
, 'kill': 0, 'teamKill': 0, 'killedBy': 0, 'headshot': 0, 'vehicleKill': 0, 'fire': 0, 'hit': 0, 'death': 0, 'damage': 0, 'damageTakenBy': 0, 'score': 784, 'playTime': 98, 'kdr': 0.0, 'kpm': 0.0, 'hsr': 0.0, 'kps': 0.0, 'hpk': 0.0, 'spm': 480.0, 'accuracy': 0.0, 'ivi': 0.0, 'imageId': '8544', 'imageSrc': '/files/ps2/images/static/8544.png'},
{'itemId': '16028', 'vehicleId': '0', 'engName': 'NCM3 Raven'
, 'name': 'NCM3 渡鸦'
, 'kill': 0, 'teamKill': 0, 'killedBy': 0, 'headshot': 0, 'vehicleKill': 0, 'fire': 0, 'hit': 0, 'death': 0, 'damage': 0, 'damageTakenBy': 0, 'score': 1011, 'playTime': 98, 'kdr': 0.0, 'kpm': 0.0, 'hsr': 0.0, 'kps': 0.0, 'hpk': 0.0, 'spm': 618.9796, 'accuracy': 0.0, 'ivi': 0.0, 'imageId': '8541', 'imageSrc': '/files/ps2/images/static/8541.png'},
{'itemId': '6010049', 'vehicleId': '0', 'engName': 'NS Scorpion'
, 'name': '纳能毒蝎'
, 'kill': 0, 'teamKill': 0, 'killedBy': 3, 'headshot': 0, 'vehicleKill': 0, 'fire': 7, 'hit': 0, 'death': 1, 'damage': 657, 'damageTakenBy': 6085, 'score': 302, 'playTime': 113, 'kdr': 0.0, 'kpm': 0.0, 'hsr': 0.0, 'kps': 7.0, 'hpk': 0.0, 'spm': 160.354, 'accuracy': 0.0, 'ivi': 0.0, 'imageId': '93543', 'imageSrc': '/files/ps2/images/static/93543.png'},
{'itemId': '7609', 'vehicleId': '0', 'engName': 'Restoration Kit'
, 'name': '恢复注射器'
, 'kill': 0, 'teamKill': 0, 'killedBy': 0, 'headshot': 0, 'vehicleKill': 0, 'fire': 0, 'hit': 0, 'death': 0, 'damage': 0, 'damageTakenBy': 0, 'score': 0, 'playTime': 5, 'kdr': 0.0, 'kpm': 0.0, 'hsr': 0.0, 'kps': 0.0, 'hpk': 0.0, 'spm': 0.0, 'accuracy': 0.0, 'ivi': 0.0, 'imageId': '1480', 'imageSrc': '/files/ps2/images/static/1480.png'},
{'itemId': '802102', 'vehicleId': '0', 'engName': 'NS-11CG'
, 'name': 'NS-11C 金色版'
, 'kill': 0, 'teamKill': 0, 'killedBy': 5, 'headshot': 0, 'vehicleKill': 0, 'fire': 0, 'hit': 0, 'death': 0, 'damage': 0, 'damageTakenBy': 2521, 'score': 0, 'playTime': 20, 'kdr': 0.0, 'kpm': 0.0, 'hsr': 0.0, 'kps': 0.0, 'hpk': 0.0, 'spm': 0.0, 'accuracy': 0.0, 'ivi': 0.0, 'imageId': '81068', 'imageSrc': '/files/ps2/images/static/81068.png'},
{'itemId': '33003', 'vehicleId': '0', 'engName': 'AF-22 Crow'
, 'name': 'AF-22 乌鸦'
, 'kill': 0, 'teamKill': 0, 'killedBy': 0, 'headshot': 0, 'vehicleKill': 0, 'fire': 0, 'hit': 0, 'death': 0, 'damage': 0, 'damageTakenBy': 0, 'score': 440, 'playTime': 63, 'kdr': 0.0, 'kpm': 0.0, 'hsr': 0.0, 'kps': 0.0, 'hpk': 0.0, 'spm': 419.0476, 'accuracy': 0.0, 'ivi': 0.0, 'imageId': '1593', 'imageSrc': '/files/ps2/images/static/1593.png'},
{'itemId': '6015090', 'vehicleId': '0', 'engName': 'NS-61 "Wartime" Emissary'
, 'name': 'NS-61 “战时” 密使'
, 'kill': 0, 'teamKill': 0, 'killedBy': 0, 'headshot': 0, 'vehicleKill': 0, 'fire': 0, 'hit': 0, 'death': 0, 'damage': 0, 'damageTakenBy': 0, 'score': 0, 'playTime': 1, 'kdr': 0.0, 'kpm': 0.0, 'hsr': 0.0, 'kps': 0.0, 'hpk': 0.0, 'spm': 0.0, 'accuracy': 0.0, 'ivi': 0.0, 'imageId': '96645', 'imageSrc': '/files/ps2/images/static/96645.png'},
{'itemId': '200', 'vehicleId': '0', 'engName': 'Anti-Infantry MANA Turret'
, 'name': '反步兵 MANA 炮台'
, 'kill': 0, 'teamKill': 0, 'killedBy': 0, 'headshot': 0, 'vehicleKill': 0, 'fire': 15, 'hit': 0, 'death': 0, 'damage': 0, 'damageTakenBy': 0, 'score': 0, 'playTime': 112, 'kdr': 0.0, 'kpm': 0.0, 'hsr': 0.0, 'kps': 15.0, 'hpk': 0.0, 'spm': 0.0, 'accuracy': 0.0, 'ivi': 0.0, 'imageId': '4395', 'imageSrc': '/files/ps2/images/static/4395.png'},
{'itemId': '75490', 'vehicleId': '0', 'engName': 'NS Patriot Flare Gun'
, 'name': '纳能爱国者烟花枪'
, 'kill': 0, 'teamKill': 0, 'killedBy': 0, 'headshot': 0, 'vehicleKill': 0, 'fire': 27, 'hit': 0, 'death': 0, 'damage': 0, 'damageTakenBy': 0, 'score': 0, 'playTime': 230, 'kdr': 0.0, 'kpm': 0.0, 'hsr': 0.0, 'kps': 27.0, 'hpk': 0.0, 'spm': 0.0, 'accuracy': 0.0, 'ivi': 0.0, 'imageId': '10065', 'imageSrc': '/files/ps2/images/static/10065.png'},
{'itemId': '6011792', 'vehicleId': '0', 'engName': 'Diver Propulsion Device 1'
, 'name': '潜水员推进器 1 级'
, 'kill': 0, 'teamKill': 0, 'killedBy': 0, 'headshot': 0, 'vehicleKill': 0, 'fire': 0, 'hit': 0, 'death': 1, 'damage': 0, 'damageTakenBy': 0, 'score': 0, 'playTime': 1125, 'kdr': 0.0, 'kpm': 0.0, 'hsr': 0.0, 'kps': 0.0, 'hpk': 0.0, 'spm': 0.0, 'accuracy': 0.0, 'ivi': 0.0, 'imageId': '95045', 'imageSrc': '/files/ps2/images/static/95045.png'},
{'itemId': '803470', 'vehicleId': '0', 'engName': 'Welding Device'
, 'name': '焊接器'
, 'kill': 0, 'teamKill': 0, 'killedBy': 0, 'headshot': 0, 'vehicleKill': 0, 'fire': 9982, 'hit': 0, 'death': 10, 'damage': 0, 'damageTakenBy': 0, 'score': 0, 'playTime': 7046, 'kdr': 0.0, 'kpm': 0.0, 'hsr': 0.0, 'kps': 9982.0, 'hpk': 0.0, 'spm': 0.0, 'accuracy': 0.0, 'ivi': 0.0, 'imageId': '86260', 'imageSrc': '/files/ps2/images/static/86260.png'},
{'itemId': '6011526', 'vehicleId': '0', 'engName': 'UBR-100 Frogman'
, 'name': 'UBR-100 蛙人'
, 'kill': 0, 'teamKill': 0, 'killedBy': 29, 'headshot': 0, 'vehicleKill': 0, 'fire': 105, 'hit': 49, 'death': 4, 'damage': 5275, 'damageTakenBy': 17073, 'score': 677, 'playTime': 1008, 'kdr': 0.0, 'kpm': 0.0, 'hsr': 0.0, 'kps': 105.0, 'hpk': 49.0, 'spm': 40.2976, 'accuracy': 0.4667, 'ivi': 0.0, 'imageId': '94509', 'imageSrc': '/files/ps2/images/static/94509.png'},
{'itemId': '6011527', 'vehicleId': '0', 'engName': 'UBR-150 Sea Lion'
, 'name': 'UBR-150 海狮'
, 'kill': 0, 'teamKill': 0, 'killedBy': 15, 'headshot': 0, 'vehicleKill': 0, 'fire': 0, 'hit': 0, 'death': 0, 'damage': 0, 'damageTakenBy': 9572, 'score': 44, 'playTime': 52, 'kdr': 0.0, 'kpm': 0.0, 'hsr': 0.0, 'kps': 0.0, 'hpk': 0.0, 'spm': 50.7692, 'accuracy': 0.0, 'ivi': 0.0, 'imageId': '94512', 'imageSrc': '/files/ps2/images/static/94512.png'},
{'itemId': '6002955', 'vehicleId': '0', 'engName': 'Hardlight Barrier'
, 'name': '强光屏障'
, 'kill': 0, 'teamKill': 0, 'killedBy': 0, 'headshot': 0, 'vehicleKill': 0, 'fire': 17, 'hit': 0, 'death': 0, 'damage': 0, 'damageTakenBy': 0, 'score': 0, 'playTime': 140, 'kdr': 0.0, 'kpm': 0.0, 'hsr': 0.0, 'kps': 17.0, 'hpk': 0.0, 'spm': 0.0, 'accuracy': 0.0, 'ivi': 0.0, 'imageId': '90256', 'imageSrc': '/files/ps2/images/static/90256.png'},
{'itemId': '804249', 'vehicleId': '0', 'engName': 'NSX Naginata'
, 'name': 'NSX 薙刀'
, 'kill': 0, 'teamKill': 0, 'killedBy': 101, 'headshot': 0, 'vehicleKill': 0, 'fire': 0, 'hit': 0, 'death': 0, 'damage': 0, 'damageTakenBy': 60891, 'score': 1705, 'playTime': 236, 'kdr': 0.0, 'kpm': 0.0, 'hsr': 0.0, 'kps': 0.0, 'hpk': 0.0, 'spm': 433.4746, 'accuracy': 0.0, 'ivi': 0.0, 'imageId': '86949', 'imageSrc': '/files/ps2/images/static/86949.png'},
{'itemId': '804243', 'vehicleId': '0', 'engName': 'NSX Tanto'
, 'name': 'NSX 短刀'
, 'kill': 0, 'teamKill': 0, 'killedBy': 50, 'headshot': 0, 'vehicleKill': 0, 'fire': 0, 'hit': 0, 'death': 0, 'damage': 0, 'damageTakenBy': 25946, 'score': 365, 'playTime': 27, 'kdr': 0.0, 'kpm': 0.0, 'hsr': 0.0, 'kps': 0.0, 'hpk': 0.0, 'spm': 811.1111, 'accuracy': 0.0, 'ivi': 0.0, 'imageId': '86946', 'imageSrc': '/files/ps2/images/static/86946.png'},
{'itemId': '376', 'vehicleId': '0', 'engName': 'Ammunition Package 1'
, 'name': '弹药包 1 级'
, 'kill': 0, 'teamKill': 0, 'killedBy': 0, 'headshot': 0, 'vehicleKill': 0, 'fire': 0, 'hit': 0, 'death': 0, 'damage': 0, 'damageTakenBy': 0, 'score': 0, 'playTime': 1, 'kdr': 0.0, 'kpm': 0.0, 'hsr': 0.0, 'kps': 0.0, 'hpk': 0.0, 'spm': 0.0, 'accuracy': 0.0, 'ivi': 0.0, 'imageId': '1474', 'imageSrc': '/files/ps2/images/static/1474.png'},
{'itemId': '377', 'vehicleId': '0', 'engName': 'Ammunition Package 1'
, 'name': '弹药包 1 级'
, 'kill': 0, 'teamKill': 0, 'killedBy': 0, 'headshot': 0, 'vehicleKill': 0, 'fire': 0, 'hit': 0, 'death': 0, 'damage': 0, 'damageTakenBy': 0, 'score': 0, 'playTime': 1, 'kdr': 0.0, 'kpm': 0.0, 'hsr': 0.0, 'kps': 0.0, 'hpk': 0.0, 'spm': 0.0, 'accuracy': 0.0, 'ivi': 0.0, 'imageId': '1474', 'imageSrc': '/files/ps2/images/static/1474.png'},
{'itemId': '803007', 'vehicleId': '0', 'engName': 'NC Triumph Flare Gun'
, 'name': '新联邦凯旋烟花枪'
, 'kill': 0, 'teamKill': 0, 'killedBy': 0, 'headshot': 0, 'vehicleKill': 0, 'fire': 0, 'hit': 0, 'death': 0, 'damage': 0, 'damageTakenBy': 0, 'score': 0, 'playTime': 111, 'kdr': 0.0, 'kpm': 0.0, 'hsr': 0.0, 'kps': 0.0, 'hpk': 0.0, 'spm': 0.0, 'accuracy': 0.0, 'ivi': 0.0, 'imageId': '10065', 'imageSrc': '/files/ps2/images/static/10065.png'},
{'itemId': '6005225', 'vehicleId': '0', 'engName': 'Ammunition Package 1'
, 'name': '弹药包 1 级'
, 'kill': 0, 'teamKill': 0, 'killedBy': 0, 'headshot': 0, 'vehicleKill': 0, 'fire': 0, 'hit': 0, 'death': 0, 'damage': 0, 'damageTakenBy': 0, 'score': 0, 'playTime': 1, 'kdr': 0.0, 'kpm': 0.0, 'hsr': 0.0, 'kps': 0.0, 'hpk': 0.0, 'spm': 0.0, 'accuracy': 0.0, 'ivi': 0.0, 'imageId': '1474', 'imageSrc': '/files/ps2/images/static/1474.png'},
{'itemId': '6008734', 'vehicleId': '0', 'engName': 'Mammoth Cannon'
, 'name': '猛犸火炮'
, 'kill': 0, 'teamKill': 0, 'killedBy': 0, 'headshot': 0, 'vehicleKill': 0, 'fire': 0, 'hit': 0, 'death': 0, 'damage': 0, 'damageTakenBy': 0, 'score': 0, 'playTime': 1, 'kdr': 0.0, 'kpm': 0.0, 'hsr': 0.0, 'kps': 0.0, 'hpk': 0.0, 'spm': 0.0, 'accuracy': 0.0, 'ivi': 0.0, 'imageId': '92775', 'imageSrc': '/files/ps2/images/static/92775.png'},
{'itemId': '75517', 'vehicleId': '0', 'engName': 'NC Patriot Flare Gun'
, 'name': '新联邦爱国者烟花枪'
, 'kill': 0, 'teamKill': 0, 'killedBy': 0, 'headshot': 0, 'vehicleKill': 0, 'fire': 0, 'hit': 0, 'death': 0, 'damage': 0, 'damageTakenBy': 0, 'score': 0, 'playTime': 119, 'kdr': 0.0, 'kpm': 0.0, 'hsr': 0.0, 'kps': 0.0, 'hpk': 0.0, 'spm': 0.0, 'accuracy': 0.0, 'ivi': 0.0, 'imageId': '10065', 'imageSrc': '/files/ps2/images/static/10065.png'},
{'itemId': '7232', 'vehicleId': '0', 'engName': 'EM1'
, 'name': 'EM1'
, 'kill': 0, 'teamKill': 0, 'killedBy': 0, 'headshot': 0, 'vehicleKill': 0, 'fire': 0, 'hit': 0, 'death': 0, 'damage': 0, 'damageTakenBy': 0, 'score': 627, 'playTime': 194, 'kdr': 0.0, 'kpm': 0.0, 'hsr': 0.0, 'kps': 0.0, 'hpk': 0.0, 'spm': 193.9175, 'accuracy': 0.0, 'ivi': 0.0, 'imageId': '5337', 'imageSrc': '/files/ps2/images/static/5337.png'},
{'itemId': '7235', 'vehicleId': '0', 'engName': 'EM6'
, 'name': 'EM6'
, 'kill': 0, 'teamKill': 0, 'killedBy': 0, 'headshot': 0, 'vehicleKill': 0, 'fire': 0, 'hit': 0, 'death': 0, 'damage': 0, 'damageTakenBy': 0, 'score': 1427, 'playTime': 308, 'kdr': 0.0, 'kpm': 0.0, 'hsr': 0.0, 'kps': 0.0, 'hpk': 0.0, 'spm': 277.987, 'accuracy': 0.0, 'ivi': 0.0, 'imageId': '85856', 'imageSrc': '/files/ps2/images/static/85856.png'},
{'itemId': '7236', 'vehicleId': '0', 'engName': 'LA1 Anchor'
, 'name': 'LA1 巨锚'
, 'kill': 0, 'teamKill': 0, 'killedBy': 0, 'headshot': 0, 'vehicleKill': 0, 'fire': 0, 'hit': 0, 'death': 0, 'damage': 0, 'damageTakenBy': 0, 'score': 5238, 'playTime': 167, 'kdr': 0.0, 'kpm': 0.0, 'hsr': 0.0, 'kps': 0.0, 'hpk': 0.0, 'spm': 1881.9162, 'accuracy': 0.0, 'ivi': 0.0, 'imageId': '9449', 'imageSrc': '/files/ps2/images/static/9449.png'},
{'itemId': '24004', 'vehicleId': '0', 'engName': 'EM4 Longshot'
, 'name': 'EM4 远射'
, 'kill': 0, 'teamKill': 0, 'killedBy': 0, 'headshot': 0, 'vehicleKill': 0, 'fire': 0, 'hit': 0, 'death': 0, 'damage': 0, 'damageTakenBy': 0, 'score': 683, 'playTime': 102, 'kdr': 0.0, 'kpm': 0.0, 'hsr': 0.0, 'kps': 0.0, 'hpk': 0.0, 'spm': 401.7647, 'accuracy': 0.0, 'ivi': 0.0, 'imageId': '5910', 'imageSrc': '/files/ps2/images/static/5910.png'},
{'itemId': '24007', 'vehicleId': '0', 'engName': 'AF-6 Shadow'
, 'name': 'AF-6 暗影'
, 'kill': 0, 'teamKill': 0, 'killedBy': 0, 'headshot': 0, 'vehicleKill': 0, 'fire': 0, 'hit': 0, 'death': 0, 'damage': 0, 'damageTakenBy': 0, 'score': 240, 'playTime': 98, 'kdr': 0.0, 'kpm': 0.0, 'hsr': 0.0, 'kps': 0.0, 'hpk': 0.0, 'spm': 146.9388, 'accuracy': 0.0, 'ivi': 0.0, 'imageId': '5877', 'imageSrc': '/files/ps2/images/static/5877.png'},
{'itemId': '24000', 'vehicleId': '0', 'engName': 'Gauss SPR'
, 'name': '高斯 SPR'
, 'kill': 0, 'teamKill': 0, 'killedBy': 0, 'headshot': 0, 'vehicleKill': 0, 'fire': 0, 'hit': 0, 'death': 0, 'damage': 0, 'damageTakenBy': 0, 'score': 1132, 'playTime': 210, 'kdr': 0.0, 'kpm': 0.0, 'hsr': 0.0, 'kps': 0.0, 'hpk': 0.0, 'spm': 323.4286, 'accuracy': 0.0, 'ivi': 0.0, 'imageId': '5898', 'imageSrc': '/files/ps2/images/static/5898.png'},
{'itemId': '24001', 'vehicleId': '0', 'engName': 'SAS-R'
, 'name': 'SAS-R'
, 'kill': 0, 'teamKill': 0, 'killedBy': 0, 'headshot': 0, 'vehicleKill': 0, 'fire': 0, 'hit': 0, 'death': 0, 'damage': 0, 'damageTakenBy': 0, 'score': 2026, 'playTime': 310, 'kdr': 0.0, 'kpm': 0.0, 'hsr': 0.0, 'kps': 0.0, 'hpk': 0.0, 'spm': 392.129, 'accuracy': 0.0, 'ivi': 0.0, 'imageId': '5901', 'imageSrc': '/files/ps2/images/static/5901.png'},
{'itemId': '7108', 'vehicleId': '0', 'engName': 'Reaper DMR'
, 'name': '收割者 DMR'
, 'kill': 0, 'teamKill': 0, 'killedBy': 0, 'headshot': 0, 'vehicleKill': 0, 'fire': 0, 'hit': 0, 'death': 0, 'damage': 0, 'damageTakenBy': 0, 'score': 1721, 'playTime': 278, 'kdr': 0.0, 'kpm': 0.0, 'hsr': 0.0, 'kps': 0.0, 'hpk': 0.0, 'spm': 371.4388, 'accuracy': 0.0, 'ivi': 0.0, 'imageId': '5316', 'imageSrc': '/files/ps2/images/static/5316.png'},
{'itemId': '45', 'vehicleId': '0', 'engName': 'Shield Recharging Field'
, 'name': '护盾充能场'
, 'kill': 0, 'teamKill': 0, 'killedBy': 0, 'headshot': 0, 'vehicleKill': 0, 'fire': 319, 'hit': 0, 'death': 16, 'damage': 0, 'damageTakenBy': 0, 'score': 0, 'playTime': 742, 'kdr': 0.0, 'kpm': 0.0, 'hsr': 0.0, 'kps': 319.0, 'hpk': 0.0, 'spm': 0.0, 'accuracy': 0.0, 'ivi': 0.0, 'imageId': '14500', 'imageSrc': '/files/ps2/images/static/14500.png'},
{'itemId': '6009856', 'vehicleId': '0', 'engName': 'Signal Scanner'
, 'name': '信号扫描器'
, 'kill': 0, 'teamKill': 0, 'killedBy': 0, 'headshot': 0, 'vehicleKill': 0, 'fire': 86, 'hit': 0, 'death': 0, 'damage': 0, 'damageTakenBy': 0, 'score': 0, 'playTime': 403, 'kdr': 0.0, 'kpm': 0.0, 'hsr': 0.0, 'kps': 86.0, 'hpk': 0.0, 'spm': 0.0, 'accuracy': 0.0, 'ivi': 0.0, 'imageId': '93445', 'imageSrc': '/files/ps2/images/static/93445.png'},
{'itemId': '153', 'vehicleId': '0', 'engName': 'Ammunition Package 1'
, 'name': '弹药包 1 级'
, 'kill': 0, 'teamKill': 0, 'killedBy': 0, 'headshot': 0, 'vehicleKill': 0, 'fire': 893, 'hit': 0, 'death': 15, 'damage': 0, 'damageTakenBy': 0, 'score': 0, 'playTime': 3748, 'kdr': 0.0, 'kpm': 0.0, 'hsr': 0.0, 'kps': 893.0, 'hpk': 0.0, 'spm': 0.0, 'accuracy': 0.0, 'ivi': 0.0, 'imageId': '1474', 'imageSrc': '/files/ps2/images/static/1474.png'},
{'itemId': '6009605', 'vehicleId': '0', 'engName': 'NE-11 PML'
, 'name': 'NE-11 PML'
, 'kill': 0, 'teamKill': 0, 'killedBy': 0, 'headshot': 0, 'vehicleKill': 0, 'fire': 3841, 'hit': 0, 'death': 0, 'damage': 0, 'damageTakenBy': 0, 'score': 4, 'playTime': 1734, 'kdr': 0.0, 'kpm': 0.0, 'hsr': 0.0, 'kps': 3841.0, 'hpk': 0.0, 'spm': 0.1384, 'accuracy': 0.0, 'ivi': 0.0, 'imageId': '93262', 'imageSrc': '/files/ps2/images/static/93262.png'},
{'itemId': '6015076', 'vehicleId': '0', 'engName': 'Spitfire "Prime Directive" Auto-Turret'
, 'name': '“喷火” 自动炮台 “第一指令”'
, 'kill': 0, 'teamKill': 0, 'killedBy': 0, 'headshot': 0, 'vehicleKill': 0, 'fire': 0, 'hit': 0, 'death': 0, 'damage': 0, 'damageTakenBy': 0, 'score': 0, 'playTime': 1, 'kdr': 0.0, 'kpm': 0.0, 'hsr': 0.0, 'kps': 0.0, 'hpk': 0.0, 'spm': 0.0, 'accuracy': 0.0, 'ivi': 0.0, 'imageId': '96587', 'imageSrc': '/files/ps2/images/static/96587.png'},
{'itemId': '804138', 'vehicleId': '0', 'engName': 'NS-61 Emissary'
, 'name': 'NS-61 密使'
, 'kill': 0, 'teamKill': 0, 'killedBy': 43, 'headshot': 0, 'vehicleKill': 0, 'fire': 0, 'hit': 0, 'death': 0, 'damage': 0, 'damageTakenBy': 23838, 'score': 1734, 'playTime': 360, 'kdr': 0.0, 'kpm': 0.0, 'hsr': 0.0, 'kps': 0.0, 'hpk': 0.0, 'spm': 289.0, 'accuracy': 0.0, 'ivi': 0.0, 'imageId': '85764', 'imageSrc': '/files/ps2/images/static/85764.png'},
{'itemId': '804255', 'vehicleId': '0', 'engName': 'NSX Daimyo'
, 'name': 'NSX 大名'
, 'kill': 0, 'teamKill': 0, 'killedBy': 47, 'headshot': 0, 'vehicleKill': 0, 'fire': 0, 'hit': 0, 'death': 0, 'damage': 0, 'damageTakenBy': 24140, 'score': 844, 'playTime': 1813, 'kdr': 0.0, 'kpm': 0.0, 'hsr': 0.0, 'kps': 0.0, 'hpk': 0.0, 'spm': 27.9316, 'accuracy': 0.0, 'ivi': 0.0, 'imageId': '86961', 'imageSrc': '/files/ps2/images/static/86961.png'},
{'itemId': '6004294', 'vehicleId': '0', 'engName': 'AM7-XOXO'
, 'name': 'AM7-XOXO'
, 'kill': 0, 'teamKill': 0, 'killedBy': 3, 'headshot': 0, 'vehicleKill': 0, 'fire': 0, 'hit': 0, 'death': 0, 'damage': 0, 'damageTakenBy': 1550, 'score': 220, 'playTime': 607, 'kdr': 0.0, 'kpm': 0.0, 'hsr': 0.0, 'kps': 0.0, 'hpk': 0.0, 'spm': 21.7463, 'accuracy': 0.0, 'ivi': 0.0, 'imageId': '88677', 'imageSrc': '/files/ps2/images/static/88677.png'},
{'itemId': '804263', 'vehicleId': '0', 'engName': 'Skywall Shield Emitter'
, 'name': '天壁护盾发射器'
, 'kill': 0, 'teamKill': 0, 'killedBy': 0, 'headshot': 0, 'vehicleKill': 0, 'fire': 124, 'hit': 0, 'death': 0, 'damage': 0, 'damageTakenBy': 0, 'score': 0, 'playTime': 1802, 'kdr': 0.0, 'kpm': 0.0, 'hsr': 0.0, 'kps': 124.0, 'hpk': 0.0, 'spm': 0.0, 'accuracy': 0.0, 'ivi': 0.0, 'imageId': '85880', 'imageSrc': '/files/ps2/images/static/85880.png'},
{'itemId': '6003552', 'vehicleId': '0', 'engName': 'Router'
, 'name': '重生路由'
, 'kill': 0, 'teamKill': 0, 'killedBy': 0, 'headshot': 0, 'vehicleKill': 0, 'fire': 54, 'hit': 0, 'death': 1, 'damage': 0, 'damageTakenBy': 0, 'score': 0, 'playTime': 600, 'kdr': 0.0, 'kpm': 0.0, 'hsr': 0.0, 'kps': 54.0, 'hpk': 0.0, 'spm': 0.0, 'accuracy': 0.0, 'ivi': 0.0, 'imageId': '96195', 'imageSrc': '/files/ps2/images/static/96195.png'},
{'itemId': '6004529', 'vehicleId': '0', 'engName': 'Reserve Hardlight Barrier'
, 'name': '备用强光屏障'
, 'kill': 0, 'teamKill': 0, 'killedBy': 0, 'headshot': 0, 'vehicleKill': 0, 'fire': 4, 'hit': 0, 'death': 0, 'damage': 0, 'damageTakenBy': 0, 'score': 0, 'playTime': 20, 'kdr': 0.0, 'kpm': 0.0, 'hsr': 0.0, 'kps': 4.0, 'hpk': 0.0, 'spm': 0.0, 'accuracy': 0.0, 'ivi': 0.0, 'imageId': '90256', 'imageSrc': '/files/ps2/images/static/90256.png'},
{'itemId': '6002466', 'vehicleId': '0', 'engName': 'Elysium Spawn Tube'
, 'name': '极乐重生舱'
, 'kill': 0, 'teamKill': 0, 'killedBy': 0, 'headshot': 0, 'vehicleKill': 0, 'fire': 108, 'hit': 0, 'death': 1, 'damage': 0, 'damageTakenBy': 0, 'score': 0, 'playTime': 1280, 'kdr': 0.0, 'kpm': 0.0, 'hsr': 0.0, 'kps': 108.0, 'hpk': 0.0, 'spm': 0.0, 'accuracy': 0.0, 'ivi': 0.0, 'imageId': '86715', 'imageSrc': '/files/ps2/images/static/86715.png'},
{'itemId': '27000', 'vehicleId': '0', 'engName': 'AF-4 Cyclone'
, 'name': 'AF-4 龙卷风'
, 'kill': 0, 'teamKill': 0, 'killedBy': 0, 'headshot': 0, 'vehicleKill': 0, 'fire': 0, 'hit': 0, 'death': 0, 'damage': 0, 'damageTakenBy': 0, 'score': 2258, 'playTime': 1537, 'kdr': 0.0, 'kpm': 0.0, 'hsr': 0.0, 'kps': 0.0, 'hpk': 0.0, 'spm': 88.1457, 'accuracy': 0.0, 'ivi': 0.0, 'imageId': '7902', 'imageSrc': '/files/ps2/images/static/7902.png'},
{'itemId': '1619', 'vehicleId': '0', 'engName': 'Medical Applicator 4'
, 'name': '医疗仪 4 级'
, 'kill': 0, 'teamKill': 0, 'killedBy': 0, 'headshot': 0, 'vehicleKill': 0, 'fire': 5582, 'hit': 0, 'death': 22, 'damage': 0, 'damageTakenBy': 0, 'score': 0, 'playTime': 1509, 'kdr': 0.0, 'kpm': 0.0, 'hsr': 0.0, 'kps': 5582.0, 'hpk': 0.0, 'spm': 0.0, 'accuracy': 0.0, 'ivi': 0.0, 'imageId': '4982', 'imageSrc': '/files/ps2/images/static/4982.png'},
{'itemId': '1618', 'vehicleId': '0', 'engName': 'Medical Applicator 3'
, 'name': '医疗仪 3 级'
, 'kill': 0, 'teamKill': 0, 'killedBy': 0, 'headshot': 0, 'vehicleKill': 0, 'fire': 0, 'hit': 0, 'death': 0, 'damage': 0, 'damageTakenBy': 0, 'score': 0, 'playTime': 1, 'kdr': 0.0, 'kpm': 0.0, 'hsr': 0.0, 'kps': 0.0, 'hpk': 0.0, 'spm': 0.0, 'accuracy': 0.0, 'ivi': 0.0, 'imageId': '4982', 'imageSrc': '/files/ps2/images/static/4982.png'},
{'itemId': '6009090', 'vehicleId': '0', 'engName': 'Caltrop'
, 'name': '拒马'
, 'kill': 0, 'teamKill': 0, 'killedBy': 0, 'headshot': 0, 'vehicleKill': 0, 'fire': 29, 'hit': 0, 'death': 3, 'damage': 0, 'damageTakenBy': 0, 'score': 0, 'playTime': 261, 'kdr': 0.0, 'kpm': 0.0, 'hsr': 0.0, 'kps': 29.0, 'hpk': 0.0, 'spm': 0.0, 'accuracy': 0.0, 'ivi': 0.0, 'imageId': '92711', 'imageSrc': '/files/ps2/images/static/92711.png'},
{'itemId': '95', 'vehicleId': '0', 'engName': 'Medical Applicator 1'
, 'name': '医疗仪 1 级'
, 'kill': 0, 'teamKill': 0, 'killedBy': 0, 'headshot': 0, 'vehicleKill': 0, 'fire': 1291, 'hit': 0, 'death': 12, 'damage': 0, 'damageTakenBy': 0, 'score': 0, 'playTime': 716, 'kdr': 0.0, 'kpm': 0.0, 'hsr': 0.0, 'kps': 1291.0, 'hpk': 0.0, 'spm': 0.0, 'accuracy': 0.0, 'ivi': 0.0, 'imageId': '4982', 'imageSrc': '/files/ps2/images/static/4982.png'},
{'itemId': '1617', 'vehicleId': '0', 'engName': 'Medical Applicator 2'
, 'name': '医疗仪 2 级'
, 'kill': 0, 'teamKill': 0, 'killedBy': 0, 'headshot': 0, 'vehicleKill': 0, 'fire': 0, 'hit': 0, 'death': 0, 'damage': 0, 'damageTakenBy': 0, 'score': 0, 'playTime': 1, 'kdr': 0.0, 'kpm': 0.0, 'hsr': 0.0, 'kps': 0.0, 'hpk': 0.0, 'spm': 0.0, 'accuracy': 0.0, 'ivi': 0.0, 'imageId': '4982', 'imageSrc': '/files/ps2/images/static/4982.png'},
{'itemId': '6009093', 'vehicleId': '0', 'engName': 'Infradine'
, 'name': '红外注射器'
, 'kill': 0, 'teamKill': 0, 'killedBy': 0, 'headshot': 0, 'vehicleKill': 0, 'fire': 263, 'hit': 0, 'death': 4, 'damage': 0, 'damageTakenBy': 0, 'score': 0, 'playTime': 553, 'kdr': 0.0, 'kpm': 0.0, 'hsr': 0.0, 'kps': 263.0, 'hpk': 0.0, 'spm': 0.0, 'accuracy': 0.0, 'ivi': 0.0, 'imageId': '1480', 'imageSrc': '/files/ps2/images/static/1480.png'},
{'itemId': '6004873', 'vehicleId': '0', 'engName': 'Solid Wall'
, 'name': '实心墙'
, 'kill': 0, 'teamKill': 0, 'killedBy': 0, 'headshot': 0, 'vehicleKill': 0, 'fire': 29, 'hit': 0, 'death': 1, 'damage': 0, 'damageTakenBy': 0, 'score': 0, 'playTime': 1196, 'kdr': 0.0, 'kpm': 0.0, 'hsr': 0.0, 'kps': 29.0, 'hpk': 0.0, 'spm': 0.0, 'accuracy': 0.0, 'ivi': 0.0, 'imageId': '89494', 'imageSrc': '/files/ps2/images/static/89494.png'},
{'itemId': '99', 'vehicleId': '0', 'engName': 'Medical Kit'
, 'name': '医疗注射器'
, 'kill': 0, 'teamKill': 0, 'killedBy': 0, 'headshot': 0, 'vehicleKill': 0, 'fire': 454, 'hit': 0, 'death': 31, 'damage': 0, 'damageTakenBy': 0, 'score': 0, 'playTime': 1731, 'kdr': 0.0, 'kpm': 0.0, 'hsr': 0.0, 'kps': 454.0, 'hpk': 0.0, 'spm': 0.0, 'accuracy': 0.0, 'ivi': 0.0, 'imageId': '1480', 'imageSrc': '/files/ps2/images/static/1480.png'},
{'itemId': '6004992', 'vehicleId': '0', 'engName': 'NS-AM8 Shortbow'
, 'name': 'NS-AM8 短弓'
, 'kill': 0, 'teamKill': 0, 'killedBy': 0, 'headshot': 0, 'vehicleKill': 0, 'fire': 57, 'hit': 26, 'death': 13, 'damage': 3554, 'damageTakenBy': 1000, 'score': 94, 'playTime': 4768, 'kdr': 0.0, 'kpm': 0.0, 'hsr': 0.0, 'kps': 57.0, 'hpk': 26.0, 'spm': 1.1829, 'accuracy': 0.4561, 'ivi': 0.0, 'imageId': '89698', 'imageSrc': '/files/ps2/images/static/89698.png'},
{'itemId': '7172', 'vehicleId': '0', 'engName': 'NC2 Gauss Compact'
, 'name': 'NC2 高斯紧凑型'
, 'kill': 0, 'teamKill': 0, 'killedBy': 0, 'headshot': 0, 'vehicleKill': 0, 'fire': 0, 'hit': 0, 'death': 0, 'damage': 0, 'damageTakenBy': 0, 'score': 1895, 'playTime': 261, 'kdr': 0.0, 'kpm': 0.0, 'hsr': 0.0, 'kps': 0.0, 'hpk': 0.0, 'spm': 435.6322, 'accuracy': 0.0, 'ivi': 0.0, 'imageId': '5331', 'imageSrc': '/files/ps2/images/static/5331.png'},
{'itemId': '6003665', 'vehicleId': '0', 'engName': 'NS-45 Pilot'
, 'name': 'NS-45 领航员'
, 'kill': 0, 'teamKill': 0, 'killedBy': 33, 'headshot': 0, 'vehicleKill': 0, 'fire': 0, 'hit': 0, 'death': 0, 'damage': 0, 'damageTakenBy': 16850, 'score': 1336, 'playTime': 432, 'kdr': 0.0, 'kpm': 0.0, 'hsr': 0.0, 'kps': 0.0, 'hpk': 0.0, 'spm': 185.5556, 'accuracy': 0.0, 'ivi': 0.0, 'imageId': '88052', 'imageSrc': '/files/ps2/images/static/88052.png'},
{'itemId': '7173', 'vehicleId': '0', 'engName': 'Razor GD-23'
, 'name': 'GD-23 剃刀'
, 'kill': 0, 'teamKill': 0, 'killedBy': 0, 'headshot': 0, 'vehicleKill': 0, 'fire': 0, 'hit': 0, 'death': 0, 'damage': 0, 'damageTakenBy': 0, 'score': 1638, 'playTime': 643, 'kdr': 0.0, 'kpm': 0.0, 'hsr': 0.0, 'kps': 0.0, 'hpk': 0.0, 'spm': 152.846, 'accuracy': 0.0, 'ivi': 0.0, 'imageId': '80392', 'imageSrc': '/files/ps2/images/static/80392.png'},
{'itemId': '1621', 'vehicleId': '0', 'engName': 'Medical Applicator 6'
, 'name': '医疗仪 6 级'
, 'kill': 0, 'teamKill': 0, 'killedBy': 0, 'headshot': 0, 'vehicleKill': 0, 'fire': 3254, 'hit': 0, 'death': 25, 'damage': 0, 'damageTakenBy': 0, 'score': 0, 'playTime': 2376, 'kdr': 0.0, 'kpm': 0.0, 'hsr': 0.0, 'kps': 3254.0, 'hpk': 0.0, 'spm': 0.0, 'accuracy': 0.0, 'ivi': 0.0, 'imageId': '4982', 'imageSrc': '/files/ps2/images/static/4982.png'},
{'itemId': '1620', 'vehicleId': '0', 'engName': 'Medical Applicator 5'
, 'name': '医疗仪 5 级'
, 'kill': 0, 'teamKill': 0, 'killedBy': 0, 'headshot': 0, 'vehicleKill': 0, 'fire': 54988, 'hit': 0, 'death': 342, 'damage': 0, 'damageTakenBy': 0, 'score': 0, 'playTime': 20411, 'kdr': 0.0, 'kpm': 0.0, 'hsr': 0.0, 'kps': 54988.0, 'hpk': 0.0, 'spm': 0.0, 'accuracy': 0.0, 'ivi': 0.0, 'imageId': '4982', 'imageSrc': '/files/ps2/images/static/4982.png'},
{'itemId': '6004421', 'vehicleId': '0', 'engName': 'Sentinel Relay'
, 'name': '哨兵中继站'
, 'kill': 0, 'teamKill': 0, 'killedBy': 0, 'headshot': 0, 'vehicleKill': 0, 'fire': 85, 'hit': 0, 'death': 0, 'damage': 0, 'damageTakenBy': 0, 'score': 0, 'playTime': 1008, 'kdr': 0.0, 'kpm': 0.0, 'hsr': 0.0, 'kps': 85.0, 'hpk': 0.0, 'spm': 0.0, 'accuracy': 0.0, 'ivi': 0.0, 'imageId': '89065', 'imageSrc': '/files/ps2/images/static/89065.png'},
{'itemId': '6003571', 'vehicleId': '0', 'engName': 'NS-11A "Heatwave"'
, 'name': 'NS-11A “热浪”'
, 'kill': 0, 'teamKill': 0, 'killedBy': 11, 'headshot': 0, 'vehicleKill': 0, 'fire': 0, 'hit': 0, 'death': 0, 'damage': 0, 'damageTakenBy': 5487, 'score': 0, 'playTime': 10, 'kdr': 0.0, 'kpm': 0.0, 'hsr': 0.0, 'kps': 0.0, 'hpk': 0.0, 'spm': 0.0, 'accuracy': 0.0, 'ivi': 0.0, 'imageId': '88091', 'imageSrc': '/files/ps2/images/static/88091.png'},
{'itemId': '6004425', 'vehicleId': '0', 'engName': 'Routing Spire'
, 'name': '传送尖塔'
, 'kill': 0, 'teamKill': 0, 'killedBy': 0, 'headshot': 0, 'vehicleKill': 0, 'fire': 60, 'hit': 0, 'death': 1, 'damage': 0, 'damageTakenBy': 0, 'score': 0, 'playTime': 683, 'kdr': 0.0, 'kpm': 0.0, 'hsr': 0.0, 'kps': 60.0, 'hpk': 0.0, 'spm': 0.0, 'accuracy': 0.0, 'ivi': 0.0, 'imageId': '89068', 'imageSrc': '/files/ps2/images/static/89068.png'},
{'itemId': '6013463', 'vehicleId': '0', 'engName': 'LA60 Masthead'
, 'name': 'LA60 桅灯'
, 'kill': 0, 'teamKill': 0, 'killedBy': 0, 'headshot': 0, 'vehicleKill': 0, 'fire': 241, 'hit': 123, 'death': 26, 'damage': 35928, 'damageTakenBy': 0, 'score': 1440, 'playTime': 6378, 'kdr': 0.0, 'kpm': 0.0, 'hsr': 0.0, 'kps': 241.0, 'hpk': 123.0, 'spm': 13.5466, 'accuracy': 0.5104, 'ivi': 0.0, 'imageId': '94849', 'imageSrc': '/files/ps2/images/static/94849.png'},
{'itemId': '6002354', 'vehicleId': '0', 'engName': 'Vehicle Ramp'
, 'name': '载具斜坡'
, 'kill': 0, 'teamKill': 0, 'killedBy': 0, 'headshot': 0, 'vehicleKill': 0, 'fire': 1, 'hit': 0, 'death': 0, 'damage': 0, 'damageTakenBy': 0, 'score': 0, 'playTime': 30, 'kdr': 0.0, 'kpm': 0.0, 'hsr': 0.0, 'kps': 1.0, 'hpk': 0.0, 'spm': 0.0, 'accuracy': 0.0, 'ivi': 0.0, 'imageId': '86646', 'imageSrc': '/files/ps2/images/static/86646.png'},
{'itemId': '6002472', 'vehicleId': '0', 'engName': 'Light Vehicle Terminal'
, 'name': '轻型载具终端'
, 'kill': 0, 'teamKill': 0, 'killedBy': 0, 'headshot': 0, 'vehicleKill': 0, 'fire': 23, 'hit': 0, 'death': 2, 'damage': 0, 'damageTakenBy': 0, 'score': 0, 'playTime': 573, 'kdr': 0.0, 'kpm': 0.0, 'hsr': 0.0, 'kps': 23.0, 'hpk': 0.0, 'spm': 0.0, 'accuracy': 0.0, 'ivi': 0.0, 'imageId': '86721', 'imageSrc': '/files/ps2/images/static/86721.png'},
{'itemId': '6002478', 'vehicleId': '0', 'engName': 'Pillbox'
, 'name': '碉堡'
, 'kill': 0, 'teamKill': 0, 'killedBy': 0, 'headshot': 0, 'vehicleKill': 0, 'fire': 106, 'hit': 0, 'death': 0, 'damage': 0, 'damageTakenBy': 0, 'score': 0, 'playTime': 1726, 'kdr': 0.0, 'kpm': 0.0, 'hsr': 0.0, 'kps': 106.0, 'hpk': 0.0, 'spm': 0.0, 'accuracy': 0.0, 'ivi': 0.0, 'imageId': '86712', 'imageSrc': '/files/ps2/images/static/86712.png'},
{'itemId': '71563', 'vehicleId': '0', 'engName': 'Anti-Vehicle MANA Turret'
, 'name': '反载具 MANA 炮台'
, 'kill': 0, 'teamKill': 0, 'killedBy': 0, 'headshot': 0, 'vehicleKill': 0, 'fire': 25, 'hit': 0, 'death': 4, 'damage': 0, 'damageTakenBy': 0, 'score': 0, 'playTime': 258, 'kdr': 0.0, 'kpm': 0.0, 'hsr': 0.0, 'kps': 25.0, 'hpk': 0.0, 'spm': 0.0, 'accuracy': 0.0, 'ivi': 0.0, 'imageId': '8011', 'imageSrc': '/files/ps2/images/static/8011.png'},
{'itemId': '6002496', 'vehicleId': '0', 'engName': 'Light Air Terminal'
, 'name': '轻型飞机终端'
, 'kill': 0, 'teamKill': 0, 'killedBy': 0, 'headshot': 0, 'vehicleKill': 0, 'fire': 19, 'hit': 0, 'death': 0, 'damage': 0, 'damageTakenBy': 0, 'score': 0, 'playTime': 405, 'kdr': 0.0, 'kpm': 0.0, 'hsr': 0.0, 'kps': 19.0, 'hpk': 0.0, 'spm': 0.0, 'accuracy': 0.0, 'ivi': 0.0, 'imageId': '86718', 'imageSrc': '/files/ps2/images/static/86718.png'},
{'itemId': '6002490', 'vehicleId': '0', 'engName': 'Vehicle Gate'
, 'name': '载具大门'
, 'kill': 0, 'teamKill': 0, 'killedBy': 0, 'headshot': 0, 'vehicleKill': 0, 'fire': 13, 'hit': 0, 'death': 0, 'damage': 0, 'damageTakenBy': 0, 'score': 0, 'playTime': 459, 'kdr': 0.0, 'kpm': 0.0, 'hsr': 0.0, 'kps': 13.0, 'hpk': 0.0, 'spm': 0.0, 'accuracy': 0.0, 'ivi': 0.0, 'imageId': '86738', 'imageSrc': '/files/ps2/images/static/86738.png'}]
+1
View File
File diff suppressed because one or more lines are too long
+555
View File
@@ -0,0 +1,555 @@
# -*- coding: utf-8 -*-
import asyncio
import os
from jieba import posseg
import json
import yaml
import jieba
import botpy
from botpy import logging, BotAPI
from botpy.ext.cog_yaml import read
from botpy.message import GroupMessage, Message,C2CMessage
from botpy.manage import C2CManageEvent
from botpy.ext.command_util import Commands
import time
from datetime import datetime, timedelta
import requests
from Player_Query import Character_Query
import csv
test_config = read(os.path.join(os.path.dirname(__file__), "config.yaml"))
jieba.load_userdict(os.path.join(os.path.dirname(__file__), "dict.txt"))
_log = logging.get_logger()
class MyClient(botpy.Client):
async def on_ready(self):
_log.info(f"robot 「{self.robot.name}」 on_ready!")
async def on_group_at_message_create(self, message: GroupMessage):
text = (message.content).strip()
if 'Error' in text or '正常' in text or '维护模式' in text or '当前模式' in text or '测试' in text:
stripped_msg = text.strip()
words = posseg.lcut(stripped_msg)
for word in words:
# 每个元素是一个 pair 对象,包含 word 和 flag 两个属性,分别表示词和词性
if word.flag == "m":
# ns 词性表示地名
Verification = str(int(word.word))
Verification = Verification.zfill(6)
break
Ver = await Fuck_tx().Code_Verifica(Verification)
if Ver == True:
if 'Error' in text:
flag = await Fuck_tx().Error_Mode()
if flag == True:
messageResult = await message._api.post_group_message(
group_openid=message.group_openid,
msg_type=0,
msg_id=message.id,
content=f"Reply_Mode修改为1",
)
_log.info(messageResult)
else:
messageResult = await message._api.post_group_message(
group_openid=message.group_openid,
msg_type=0,
msg_id=message.id,
content=f"Reply_Mode修改失败",
)
_log.info(messageResult)
elif '正常' in text:
flag = await Fuck_tx().Common_Mode()
if flag == True:
messageResult = await message._api.post_group_message(
group_openid=message.group_openid,
msg_type=0,
msg_id=message.id,
content=f"Reply_Mode修改为0",
)
_log.info(messageResult)
else:
messageResult = await message._api.post_group_message(
group_openid=message.group_openid,
msg_type=0,
msg_id=message.id,
content=f"Reply_Mode修改失败",
)
_log.info(messageResult)
elif '当前模式' in text:
text = await Fuck_tx().Now_Cfg()
if text['Reply_Mode'] == '0':
messageResult = await message._api.post_group_message(
group_openid=message.group_openid,
msg_type=0,
msg_id=message.id,
content=f"当前为普通模式,Reply_Mode为:{text['Reply_Mode']}",
)
_log.info(messageResult)
elif text['Reply_Mode'] == '1':
messageResult = await message._api.post_group_message(
group_openid=message.group_openid,
msg_type=0,
msg_id=message.id,
content=f"当前为Error模式,Reply_Mode为:{text['Reply_Mode']}",
)
_log.info(messageResult)
elif '测试' in text:
text = await Fuck_tx().Now_Cfg()
if text['Reply_Mode'] == '0':
messageResult = await message._api.post_group_message(
group_openid=message.group_openid,
msg_type=0,
msg_id=message.id,
#不包含message_id为主动发文
content=f"当前为普通模式,Reply_Mode为:{text['Reply_Mode']}",
)
_log.info(messageResult)
elif text['Reply_Mode'] == '1':
messageResult = await message._api.post_group_message(
group_openid=message.group_openid,
msg_type=0,
msg_id=message.id,
content=f"当前为Error模式,Reply_Mode为:{text['Reply_Mode']}",
)
_log.info(messageResult)
elif '维护模式' in text:
flag = await Fuck_tx().Server_Mode()
if flag == True:
messageResult = await message._api.post_group_message(
group_openid=message.group_openid,
msg_type=0,
msg_id=message.id,
content=f"Reply_Mode修改为2",
)
_log.info(messageResult)
else:
messageResult = await message._api.post_group_message(
group_openid=message.group_openid,
msg_type=0,
msg_id=message.id,
content=f"Reply_Mode修改失败",
)
_log.info(messageResult)
else:
messageResult = await message._api.post_group_message(
group_openid=message.group_openid,
msg_type=0,
msg_id=message.id,
content=f"你谁啊你",
)
_log.info(messageResult)
elif '投稿' in text:
url = message.attachments[0].url
response = requests.get(url)
image_dir = os.path.join(os.path.dirname(__file__))
if response.status_code == 200:
# 将图片数据写入本地文件
file_base = message.content.replace("投稿", "").strip()
if file_base != '':
image_name = file_base + '.jpg'
image_path = os.path.join(os.path.dirname(__file__),image_name)
else:
image_name = message.id[:-8] + '.jpg'
image_path = os.path.join(os.path.dirname(__file__),image_name)
with open(image_path, 'wb') as file:
file.write(response.content)
messageResult = await message._api.post_group_message(
group_openid=message.group_openid,
msg_type=0,
msg_id=message.id,
content=f"图片下载成功!",
)
_log.info(messageResult)
else:
messageResult = await message._api.post_group_message(
group_openid=message.group_openid,
msg_type=0,
msg_id=message.id,
content=f"图片下载失败!",
)
_log.info(messageResult)
_log.info(messageResult)
elif '角色查询' in text:
stripped_msg = text.strip()
words = posseg.lcut(stripped_msg)
msg = { 'ID': '',
'Num':20,
'Mode':'Normal',
"Status":'',
"TimeLine":'',
}
for word in words:
# 每个元素是一个 pair 对象,包含 word 和 flag 两个属性,分别表示词和词性
if word.flag == "que":
msg['Mode'] = (word.word).lower()
break
elif (word.word) == '死亡':
msg['Mode'] = "death"
elif (word.word) == '评分':
msg['Mode'] = "ivi"
elif (word.word) == '时间':
msg['Mode'] = "time"
elif (word.word) == '击杀':
msg['Mode'] = "kill"
for word in words:
if word.flag == 'm':
msg['Num'] = int(word.word)
break
for word in words:
if word.flag == 'eng':
msg['ID'] = word.word
break
if msg['ID'] != '' :
#start = await Character_Query().test_re(msg)
messageResult = await message._api.post_group_message(
group_openid=message.group_openid,
msg_type=0,
msg_id=message.id,
msg_seq= 1,
content=str('数据检索中...'),
)
_log.info(messageResult)
try:
date = await Character_Query().Character_date(msg['ID'])
except:
messageResult = await message._api.post_group_message(
group_openid=message.group_openid,
msg_type=0,
msg_id=message.id,
msg_seq= 2,
content=str('API沟通失败,请重试...'),
)
_log.info(messageResult)
try:
code = date['code']
if code == 10000:
messageResult = await message._api.post_group_message(
group_openid=message.group_openid,
msg_type=0,
msg_id=message.id,
msg_seq= 2,
content=str('未找到该玩家数据,请检查ID是否正确'),
)
_log.info(messageResult)
except:
Player_BasicDate = date['basicInfo']
Player_LatestSessionInfo = date['latestSessionInfo']
Character_Id = Player_BasicDate['characterFullName']
if Player_BasicDate['outfitAlias'] == None:
Character_outfitAlias = ''
else:
Character_outfitAlias = '[' + Player_BasicDate['outfitAlias'] + ']'
Online_flag = Player_BasicDate['online']
try:
if Online_flag == True :
logintimeline = int(Player_LatestSessionInfo['latestLoginDate'])
logintime = datetime.fromtimestamp(logintimeline)
formatted_time = logintime.strftime("%Y-%m-%d %H:%M")
elif Online_flag == False :
Logouttimeline = int(Player_LatestSessionInfo['latestLogoutDate'])/1000
Logouttime = datetime.fromtimestamp(int(Logouttimeline))
formatted_time = Logouttime.strftime("%Y-%m-%d %H:%M")
except:
formatted_time = '数据库无记录'
msg['Character_ID'] = Character_outfitAlias + ' ' + Character_Id
msg['ID'] = Character_Id
msg['Status'] = Online_flag
msg['TimeLine'] = formatted_time
web_url = 'https://bot.file.sunderer.games'
if msg['Mode'] == 'Normal':
print(msg['Mode'])
overname = await Character_Query().Date_OverView(msg,date)
url = web_url + '/' + overname
try:
uploadMedia = await message._api.post_group_file(
group_openid=message.group_openid,
file_type=1, # 文件类型要对应上,具体支持的类型见方法说明
url=url # 文件Url
)
messageResult = await message._api.post_group_message(
group_openid=message.group_openid,
msg_type=7,
msg_id=message.id,
msg_seq = 4,
#content=f"收到了消息:{message.content}",
media=uploadMedia,
)
_log.info(messageResult)
except:
messageResult = await message._api.post_group_message(
group_openid=message.group_openid,
msg_type=0,
msg_id=message.id,
msg_seq= 3909,
content=str('QQbot接口请求错误,请重试'),
)
_log.info(messageResult)
else:
print(msg['Mode'])
cycle = await Character_Query().Date_list(msg,date)
#web_url = 'http://xm1.dc.sunderer.games:3100/'
for i in range(0,cycle):
img_id = str(Character_Id) + "({}).jpg".format(i)
Character_url = web_url + '/' + img_id
try:
uploadMedia = await message._api.post_group_file(
group_openid=message.group_openid,
file_type=1, # 文件类型要对应上,具体支持的类型见方法说明
url=Character_url # 文件Url
)
messageResult = await message._api.post_group_message(
group_openid=message.group_openid,
msg_type=7,
msg_id=message.id,
msg_seq = 3 + (i-1),
#content=f"收到了消息:{message.content}",
media=uploadMedia,
)
_log.info(messageResult)
except:
messageResult = await message._api.post_group_message(
group_openid=message.group_openid,
msg_type=0,
msg_id=message.id,
msg_seq= 3 + (i-1),
content=str('QQbot接口请求错误,请重试'),
)
_log.info(messageResult)
for j in range(0,cycle):
img_id = str(Character_Id) + "({}).jpg".format(j)
file_path = os.path.join('/home/bot/QQbot/Charter_Sundy_Query/Output',img_id)
os.remove(file_path)
#User_Name = 'MMMMMMMMMM'
else:
messageResult = await message._api.post_group_message(
group_openid=message.group_openid,
msg_type=0,
msg_id=message.id,
msg_seq= 2,
content=str('请检查是否输入ID'),
)
_log.info(messageResult)
elif '指令帮助' in text:
textt = "查询指令格式为:【角色ID】,【筛选模式】,【数量】\r查询指令通过逗号(,)连接\r例如:MicroYX,击杀,20\r Aokiwasukekdr40\r筛选模式为:\r击杀,死亡,\r 倒地,评分,\r 时间,KDR\r KPMHSR\r ACC IVI\r数量可以任意填写,但数量多会导致生成时间过慢。\r如有不理解或者数据错误,请@群管理。"
messageResult = await message._api.post_group_message(
group_openid=message.group_openid,
msg_type=0,
msg_id=message.id,
content=str(textt),
)
elif '查询人口' in text:
file_url = 'https://bot.file.sunderer.games/test.png'
uploadMedia = await message._api.post_group_file(
group_openid=message.group_openid,
file_type=1, # 文件类型要对应上,具体支持的类型见方法说明
url=file_url # 文件Url
)
messageResult = await message._api.post_group_message(
group_openid=message.group_openid,
msg_type=7,
msg_id=message.id,
#content=f"收到了消息:{message.content}",
media=uploadMedia,
)
_log.info(messageResult)
elif '查询' in text:
file_url = await Fuck_tx().Server_query(message)
uploadMedia = await message._api.post_group_file(
group_openid=message.group_openid,
file_type=1, # 文件类型要对应上,具体支持的类型见方法说明
url=file_url # 文件Url
)
messageResult = await message._api.post_group_message(
group_openid=message.group_openid,
msg_type=7,
msg_id=message.id,
#content=f"收到了消息:{message.content}",
media=uploadMedia,
)
_log.info(messageResult)
class Fuck_tx():
async def Server_query(self,message):
text = message.content
web_url = 'https://bot.file.sunderer.games'
stripped_msg = text.strip()
words = posseg.lcut(stripped_msg)
Server = None
for word in words:
# 每个元素是一个 pair 对象,包含 word 和 flag 两个属性,分别表示词和词性
if word.flag == "ser":
# ns 词性表示地名
Server = word.word
break
if Server != None:
test_config = read(os.path.join(os.path.dirname(__file__), "config.yaml"))
if test_config['Reply_Mode'] == '0':
if Server == "索泰克":
web_body = '/Soltech_Sundy.jpg'
elif Server == "米勒":
web_body = '/沉痛悼念米勒.png'
elif Server == "艾莫若德":
web_body = '/沉痛悼念艾莫若德.png'
elif Server == "康纳利":
web_body = '/沉痛悼念康纳利.png'
elif Server == "柯伯特":
web_body = '/沉痛悼念柯伯特.png'
elif Server == "奥斯普雷":
web_body = '/Connery.jpg'
elif Server == "温怀特":
web_body = '/Miller.jpg'
file_url = web_url + web_body
return file_url
elif test_config['Reply_Mode'] == '1':
web_body = 'error.png'
file_url = web_url + web_body
return file_url
elif test_config['Reply_Mode'] == '2':
web_body = 'Server.jpg'
file_url = web_url + web_body
return file_url
async def Error_Mode(self):
try:
test_config = read(os.path.join(os.path.dirname(__file__), "config.yaml"))
test_config['Reply_Mode'] = '1'
with open((os.path.join(os.path.dirname(__file__), "config.yaml")), "w") as file:
yaml.dump(test_config, file)
return True
except:
return False
async def Server_Mode(self):
try:
test_config = read(os.path.join(os.path.dirname(__file__), "config.yaml"))
test_config['Reply_Mode'] = '2'
with open((os.path.join(os.path.dirname(__file__), "config.yaml")), "w") as file:
yaml.dump(test_config, file)
return True
except:
return False
async def Common_Mode(self):
try:
test_config = read(os.path.join(os.path.dirname(__file__), "config.yaml"))
test_config['Reply_Mode'] = '0'
with open((os.path.join(os.path.dirname(__file__), "config.yaml")), "w") as file:
yaml.dump(test_config, file)
return True
except:
return False
async def Now_Cfg(self):
try:
test_config = read(os.path.join(os.path.dirname(__file__), "config.yaml"))
return test_config
except:
return '出错了'
async def Code_Verifica(self,code):
time_now = str(int(time.time()))
time00 = time_now[0:4]
time1 = str(code)[::-1]
time_ver = time00+time1
if int(time_now) < int(time_ver) and (int(time_ver)-300) < int(time_now):
return True
else:
return False
async def Code_Gen(self):
time1 = str(int(time.time())+300)
time3 = time1[::-1][:-4]
return time3
async def Clean_All_Server(self):
url = "https://api.sunderer.games/census/restart"
payload = "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"page_no\"\r\n\r\n1\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"page_size\"\r\n\r\n15\r\n-----011000010111000001101001--\r\n\r\n"
headers = {"content-type": "multipart/form-data; boundary=---011000010111000001101001"}
response = requests.request("POST", url, data=payload, headers=headers)
return response.text
async def Clean_Specific_Server(self,server):
url = "https://api.sunderer.games/census/restart/server"
payload = {"ServerName": ""}
payload['ServerName'] = str(server)
headers = {"content-type": "application/json"}
response = requests.request("POST", url, json=payload, headers=headers)
return response.text
if __name__ == "__main__":
# 通过预设置的类型,设置需要监听的事件通道
# intents = botpy.Intents.none()
# intents.public_messages=True
# 通过kwargs,设置需要监听的事件通道
intents = botpy.Intents(public_messages=True)
client = MyClient(intents=intents)
client.run(appid=test_config["appid"], secret=test_config["secret"])
+929
View File
@@ -0,0 +1,929 @@
# -*- coding: utf-8 -*-
import asyncio
import os
from jieba import posseg
import re
import json
import yaml
import jieba
import botpy
from botpy import logging, BotAPI
from botpy.ext.cog_yaml import read
from botpy.message import GroupMessage, Message,C2CMessage
from botpy.manage import C2CManageEvent
from botpy.ext.command_util import Commands
import time
from datetime import datetime, timedelta
import requests
from Player_Query import Character_Query
import csv
from Vechile import Vechile_Character_Query
from Specific_vehicle import Specific_query,sorting
from pathlib import Path
test_config = read(os.path.join(os.path.dirname(__file__), "config.yaml"))
jieba.load_userdict(os.path.join(os.path.dirname(__file__), "dict.txt"))
_log = logging.get_logger()
class MyClient(botpy.Client):
async def on_ready(self):
_log.info(f"robot 「{self.robot.name}」 on_ready!")
async def on_group_at_message_create(self, message: GroupMessage):
text = (message.content).strip()
if 'Error' in text or '正常' in text or '维护模式' in text or '当前模式' in text or '测试' in text:
stripped_msg = text.strip()
words = posseg.lcut(stripped_msg)
for word in words:
# 每个元素是一个 pair 对象,包含 word 和 flag 两个属性,分别表示词和词性
if word.flag == "m":
# ns 词性表示地名
Verification = str(int(word.word))
Verification = Verification.zfill(6)
break
Ver = await Fuck_tx().Code_Verifica(Verification)
if Ver == True:
if 'Error' in text:
flag = await Fuck_tx().Error_Mode()
if flag == True:
messageResult = await message._api.post_group_message(
group_openid=message.group_openid,
msg_type=0,
msg_id=message.id,
content=f"Reply_Mode修改为1",
)
_log.info(messageResult)
else:
messageResult = await message._api.post_group_message(
group_openid=message.group_openid,
msg_type=0,
msg_id=message.id,
content=f"Reply_Mode修改失败",
)
_log.info(messageResult)
elif '正常' in text:
flag = await Fuck_tx().Common_Mode()
if flag == True:
messageResult = await message._api.post_group_message(
group_openid=message.group_openid,
msg_type=0,
msg_id=message.id,
content=f"Reply_Mode修改为0",
)
_log.info(messageResult)
else:
messageResult = await message._api.post_group_message(
group_openid=message.group_openid,
msg_type=0,
msg_id=message.id,
content=f"Reply_Mode修改失败",
)
_log.info(messageResult)
elif '当前模式' in text:
text = await Fuck_tx().Now_Cfg()
if text['Reply_Mode'] == '0':
messageResult = await message._api.post_group_message(
group_openid=message.group_openid,
msg_type=0,
msg_id=message.id,
content=f"当前为普通模式,Reply_Mode为:{text['Reply_Mode']}",
)
_log.info(messageResult)
elif text['Reply_Mode'] == '1':
messageResult = await message._api.post_group_message(
group_openid=message.group_openid,
msg_type=0,
msg_id=message.id,
content=f"当前为Error模式,Reply_Mode为:{text['Reply_Mode']}",
)
_log.info(messageResult)
elif '测试' in text:
text = await Fuck_tx().Now_Cfg()
if text['Reply_Mode'] == '0':
messageResult = await message._api.post_group_message(
group_openid=message.group_openid,
msg_type=0,
msg_id=message.id,
#不包含message_id为主动发文
content=f"当前为普通模式,Reply_Mode为:{text['Reply_Mode']}",
)
_log.info(messageResult)
elif text['Reply_Mode'] == '1':
messageResult = await message._api.post_group_message(
group_openid=message.group_openid,
msg_type=0,
msg_id=message.id,
content=f"当前为Error模式,Reply_Mode为:{text['Reply_Mode']}",
)
_log.info(messageResult)
elif '维护模式' in text:
flag = await Fuck_tx().Server_Mode()
if flag == True:
messageResult = await message._api.post_group_message(
group_openid=message.group_openid,
msg_type=0,
msg_id=message.id,
content=f"Reply_Mode修改为2",
)
_log.info(messageResult)
else:
messageResult = await message._api.post_group_message(
group_openid=message.group_openid,
msg_type=0,
msg_id=message.id,
content=f"Reply_Mode修改失败",
)
_log.info(messageResult)
else:
messageResult = await message._api.post_group_message(
group_openid=message.group_openid,
msg_type=0,
msg_id=message.id,
content=f"你谁啊你",
)
_log.info(messageResult)
elif '投稿' in text:
url = message.attachments[0].url
response = requests.get(url)
image_dir = os.path.join(os.path.dirname(__file__))
if response.status_code == 200:
# 将图片数据写入本地文件
file_base = message.content.replace("投稿", "").strip()
if file_base != '':
image_name = file_base + '.jpg'
image_path = os.path.join(os.path.dirname(__file__),image_name)
else:
image_name = message.id[:-8] + '.jpg'
image_path = os.path.join(os.path.dirname(__file__),image_name)
with open(image_path, 'wb') as file:
file.write(response.content)
messageResult = await message._api.post_group_message(
group_openid=message.group_openid,
msg_type=0,
msg_id=message.id,
content=f"图片下载成功!",
)
_log.info(messageResult)
else:
messageResult = await message._api.post_group_message(
group_openid=message.group_openid,
msg_type=0,
msg_id=message.id,
content=f"图片下载失败!",
)
_log.info(messageResult)
_log.info(messageResult)
elif '角色查询' in text:
stripped_msg = text.strip()
stripped_msg = stripped_msg.replace("", ",")
cleaned_text = re.sub(r'[,\s]+', ' ', stripped_msg)
user_text = cleaned_text.split()
_log.info(user_text)
words = posseg.lcut(stripped_msg)
msg = { 'ID': '',
'Num':20,
'Mode':'Normal',
"Status":'',
"TimeLine":'',
}
msg['ID'] = user_text[1]
for word in words:
# 每个元素是一个 pair 对象,包含 word 和 flag 两个属性,分别表示词和词性
if word.flag == "que":
msg['Mode'] = (word.word).lower()
break
elif (word.word) == '死亡':
msg['Mode'] = "death"
elif (word.word) == '评分':
msg['Mode'] = "ivi"
elif (word.word) == '时间':
msg['Mode'] = "time"
elif (word.word) == '击杀':
msg['Mode'] = "kill"
#查询数量记录
try:
msg['num'] = user_text[3]
except:
msg['num'] = 20
if msg['ID'] != '' :
#start = await Character_Query().test_re(msg)
messageResult = await message._api.post_group_message(
group_openid=message.group_openid,
msg_type=0,
msg_id=message.id,
msg_seq= 1,
content=str('数据检索中...'),
)
_log.info(messageResult)
try:
date = await Character_Query().Character_date(msg['ID'])
except:
messageResult = await message._api.post_group_message(
group_openid=message.group_openid,
msg_type=0,
msg_id=message.id,
msg_seq= 2,
content=str('API沟通失败,请重试...'),
)
_log.info(messageResult)
try:
code = date['code']
if code == 10000:
messageResult = await message._api.post_group_message(
group_openid=message.group_openid,
msg_type=0,
msg_id=message.id,
msg_seq= 2,
content=str('未找到该玩家数据,请检查ID是否正确'),
)
_log.info(messageResult)
except:
Player_BasicDate = date['basicInfo']
Player_LatestSessionInfo = date['latestSessionInfo']
Character_Id = Player_BasicDate['characterFullName']
if Player_BasicDate['outfitAlias'] == None:
Character_outfitAlias = ''
else:
Character_outfitAlias = '[' + Player_BasicDate['outfitAlias'] + ']'
Online_flag = Player_BasicDate['online']
try:
if Online_flag == True :
logintimeline = int(Player_LatestSessionInfo['latestLoginDate'])
logintime = datetime.fromtimestamp(logintimeline)
formatted_time = logintime.strftime("%Y-%m-%d %H:%M")
elif Online_flag == False :
Logouttimeline = int(Player_LatestSessionInfo['latestLogoutDate'])/1000
Logouttime = datetime.fromtimestamp(int(Logouttimeline))
formatted_time = Logouttime.strftime("%Y-%m-%d %H:%M")
except:
formatted_time = '数据库无记录'
msg['Character_ID'] = Character_outfitAlias + ' ' + Character_Id
msg['ID'] = Character_Id
msg['Status'] = Online_flag
msg['TimeLine'] = formatted_time
web_url = 'https://bot.file.sunderer.games'
if msg['Mode'] == 'Normal':
print(msg['Mode'])
overname = await Character_Query().Date_OverView(msg,date)
url = web_url + '/' + overname
try:
uploadMedia = await message._api.post_group_file(
group_openid=message.group_openid,
file_type=1, # 文件类型要对应上,具体支持的类型见方法说明
url=url # 文件Url
)
messageResult = await message._api.post_group_message(
group_openid=message.group_openid,
msg_type=7,
msg_id=message.id,
msg_seq = 4,
#content=f"收到了消息:{message.content}",
media=uploadMedia,
)
_log.info(messageResult)
except:
messageResult = await message._api.post_group_message(
group_openid=message.group_openid,
msg_type=0,
msg_id=message.id,
msg_seq= 3909,
content=str('QQbot接口请求错误,请重试'),
)
_log.info(messageResult)
else:
print(msg['Mode'])
cycle = await Character_Query().Date_list(msg,date)
#web_url = 'http://xm1.dc.sunderer.games:3100/'
for i in range(0,cycle):
img_id = str(Character_Id) + "({}).jpg".format(i)
Character_url = web_url + '/' + img_id
try:
uploadMedia = await message._api.post_group_file(
group_openid=message.group_openid,
file_type=1, # 文件类型要对应上,具体支持的类型见方法说明
url=Character_url # 文件Url
)
messageResult = await message._api.post_group_message(
group_openid=message.group_openid,
msg_type=7,
msg_id=message.id,
msg_seq = 3 + (i-1),
#content=f"收到了消息:{message.content}",
media=uploadMedia,
)
_log.info(messageResult)
except:
messageResult = await message._api.post_group_message(
group_openid=message.group_openid,
msg_type=0,
msg_id=message.id,
msg_seq= 3 + (i-1),
content=str('QQbot接口请求错误,请重试'),
)
_log.info(messageResult)
for j in range(0,cycle):
img_id = str(Character_Id) + "({}).jpg".format(j)
file_path = os.path.join('/home/bot/QQbot/Charter_Sundy_Query/Output',img_id)
os.remove(file_path)
#User_Name = 'MMMMMMMMMM'
else:
messageResult = await message._api.post_group_message(
group_openid=message.group_openid,
msg_type=0,
msg_id=message.id,
msg_seq= 2,
content=str('请检查是否输入ID'),
)
_log.info(messageResult)
elif '指令帮助' in text:
textt = "查询指令格式为:【角色ID】,【筛选模式】,【数量】\r查询指令通过逗号(,)连接\r例如:MicroYX,击杀,20\r Aokiwasukekdr40\r筛选模式为:\r击杀,死亡,\r 倒地,评分,\r 时间,KDR\r KPMHSR\r ACC IVI\r数量可以任意填写,但数量多会导致生成时间过慢。\r如有不理解或者数据错误,请@群管理。"
messageResult = await message._api.post_group_message(
group_openid=message.group_openid,
msg_type=0,
msg_id=message.id,
content=str(textt),
)
elif '在线验证' in text:
stripped_msg = text.strip()
words = posseg.lcut(stripped_msg)
msg = { 'ID': '',
'Num':20,
'Mode':'Normal',
"Status":'',
"TimeLine":'',
}
for word in words:
if word.flag == 'eng':
msg['ID'] = word.word
break
flag = await Fuck_tx().Online_Query(msg['ID'])
print(flag)
messageResult = await message._api.post_group_message(
group_openid=message.group_openid,
msg_type=0,
msg_id=message.id,
content=str(flag),
)
_log.info(messageResult)
elif '查询人口' in text:
file_url = 'https://bot.file.sunderer.games/error.png'#'test.png error.png'#
uploadMedia = await message._api.post_group_file(
group_openid=message.group_openid,
file_type=1, # 文件类型要对应上,具体支持的类型见方法说明
url=file_url # 文件Url
)
messageResult = await message._api.post_group_message(
group_openid=message.group_openid,
msg_type=7,
msg_id=message.id,
#content=f"收到了消息:{message.content}",
media=uploadMedia,
)
_log.info(messageResult)
elif '载具总览' in text:
stripped_msg = text.strip()
stripped_msg = stripped_msg.replace("", ",")
cleaned_text = re.sub(r'[,\s]+', ' ', stripped_msg)
user_text = cleaned_text.split()
_log.info(user_text)
words = posseg.lcut(stripped_msg)
msg = { 'ID': '',
'Num':20,
'Mode':'Normal',
"Status":'',
"TimeLine":'',
}
msg['ID'] = user_text[1]
for word in words:
# 每个元素是一个 pair 对象,包含 word 和 flag 两个属性,分别表示词和词性
if word.flag == "que":
msg['Mode'] = (word.word).lower()
break
elif (word.word) == '死亡':
msg['Mode'] = "death"
elif (word.word) == '评分':
msg['Mode'] = "ivi"
elif (word.word) == '时间':
msg['Mode'] = "time"
elif (word.word) == '击杀':
msg['Mode'] = "kill"
if msg['ID'] != '' :
#start = await Character_Query().test_re(msg)
messageResult = await message._api.post_group_message(
group_openid=message.group_openid,
msg_type=0,
msg_id=message.id,
msg_seq= 1,
content=str('数据检索中...'),
)
_log.info(messageResult)
try:
date = await Character_Query().Character_date(msg['ID'])
except:
messageResult = await message._api.post_group_message(
group_openid=message.group_openid,
msg_type=0,
msg_id=message.id,
msg_seq= 2,
content=str('API沟通失败,请重试...'),
)
_log.info(messageResult)
try:
code = date['code']
if code == 10000:
messageResult = await message._api.post_group_message(
group_openid=message.group_openid,
msg_type=0,
msg_id=message.id,
msg_seq= 2,
content=str('未找到该玩家数据,请检查ID是否正确'),
)
_log.info(messageResult)
except:
web_body = await Vechile_Character_Query().Date_Rinse_common(date)
web_url = 'https://bot.file.sunderer.games/'
file_url = web_url + web_body
uploadMedia = await message._api.post_group_file(
group_openid=message.group_openid,
file_type=1, # 文件类型要对应上,具体支持的类型见方法说明
url=file_url # 文件Url
)
messageResult = await message._api.post_group_message(
group_openid=message.group_openid,
msg_type=7,
msg_seq= 3,
msg_id=message.id,
#content=f"收到了消息:{message.content}",
media=uploadMedia,
)
_log.info(messageResult)
file_path = os.path.join('/home/bot/QQbot/Charter_Sundy_Query/Output',web_body)
os.remove(file_path)
elif '载具查询' in text:
stripped_msg = text.strip()
stripped_msg = stripped_msg.replace("", ",")
cleaned_text = re.sub(r'[,\s]+', ' ', stripped_msg)
user_text = cleaned_text.split()
_log.info(user_text)
words = posseg.lcut(stripped_msg)
msg = { 'ID': '',
'Num':20,
'Mode':'kill',
"Status":'',
"TimeLine":'',
'Select':'',
'user_give_faction':''
}
msg['ID'] = user_text[1]
for word in words:
if word.flag == "vea":
msg['Select'] = word.word
if word.word == '蚊子':
msg["Select"] = 'Mosquito'
elif word.word == '镰刀':
msg["Select"] = 'Scythe'
elif word.word == '海盗':
msg["Select"] = 'Reaver'
elif word.word == '电磁':
msg["Select"] = 'Magrider'
elif word.word == '徘徊':
msg["Select"] = 'Prowler'
elif word.word == '决裂':
msg["Select"] = 'Sunderer'
elif word.word == '先驱':
msg["Select"] = 'Vanguard'
elif word.word == '奇美拉':
msg["Select"] = 'Chimera'
elif word.word == '突袭':
msg["Select"] = 'Harasser'
elif word.word == '银河':
msg["Select"] = 'Galaxy'
elif word.word == '女武神':
msg["Select"] = 'Valkyrie'
elif word.word == '解放':
msg["Select"] = 'Liberator'
elif word.word == '北极星':
msg["Select"] = 'Lodestar Prototype'
elif word.word == '火花':
msg["Select"] = 'Flash'
elif word.word == '闪电':
msg["Select"] = 'Lightning'
elif word.word == '巨像':
msg["Select"] = 'Colossus'
elif word.word == '私掠者':
msg["Select"] = 'Corsair'
elif word.word == '标枪':
msg["Select"] = 'Javelin'
elif word.word == '苦行僧':
msg["Select"] = 'Dervish'
if msg['Select'] == 'Mosquito' or msg['Select'] =='Prowler' :
msg['user_give_faction'] = "3"
elif msg['Select'] == 'Scythe' or msg['Select'] == 'Magrider' :
msg['user_give_faction'] = "1"
elif msg['Select'] == 'Reaver' or msg['Select'] == 'Vanguard' :
msg['user_give_faction'] = "2"
elif msg['Select'] == 'Dervish' or msg['Select'] == 'Chimera' :
msg['user_give_faction'] = "4"
_log.info(msg)
for word in words:
# 每个元素是一个 pair 对象,包含 word 和 flag 两个属性,分别表示词和词性
if word.flag == "que":
msg['Mode'] = (word.word).lower()
break
elif word.flag == 'qua':
msg['Mode'] = (word.word)
if msg['Mode']== '击杀':#
msg['Mode'] = "kill"
elif msg['Mode']== '开火次数':#
msg['Mode'] = "fire"
elif msg['Mode']== '命中次数':#
msg['Mode'] = "hit"
elif msg['Mode']== '命中率':#
msg['Mode'] = "acc"
elif msg['Mode']== '击杀平均开火数':#
msg['Mode'] = "spk"
elif msg['Mode']== '击杀平均命中数':#
msg['Mode'] = "hpk"
elif msg['Mode']== '伤害量':#
msg['Mode'] = "dmg"
elif msg['Mode']== '分钟平均得分数':#
msg['Mode'] = "spm"
elif msg['Mode']== '累计使用时间':#
msg['Mode'] = "time"
if msg['ID'] != '' :
#start = await Character_Query().test_re(msg)
messageResult = await message._api.post_group_message(
group_openid=message.group_openid,
msg_type=0,
msg_id=message.id,
msg_seq= 1,
content=str('数据检索中...'),
)
_log.info(messageResult)
try:
date = await Character_Query().Character_date(msg['ID'])
except:
messageResult = await message._api.post_group_message(
group_openid=message.group_openid,
msg_type=0,
msg_id=message.id,
msg_seq= 2,
content=str('API沟通失败,请重试...'),
)
_log.info(messageResult)
try:
code = date['code']
if code == 10000:
messageResult = await message._api.post_group_message(
group_openid=message.group_openid,
msg_type=0,
msg_id=message.id,
msg_seq= 2,
content=str('未找到该玩家数据,请检查ID是否正确'),
)
_log.info(messageResult)
except:
Vechile_BasicDate_ori = date["battleData"]['vehicleData']
airvichile = ['Mosquito','Scythe','Reaver','Dervish']
landvichile = ['Chimera','Vanguard','Magrider','Prowler']
if msg['user_give_faction'] != None:
Chart_faction = str(date["basicInfo"]["factionId"])
_log.info(Chart_faction)
if Chart_faction == msg['user_give_faction']:
_log.info('阵营与查询目标吻合')
else:
_log.info('阵营与查询目标不吻合')
if Chart_faction == '1':
if msg['Select'] in airvichile:
msg['Select'] = 'Scythe'
elif msg['Select'] in landvichile:
msg['Select'] = 'Magrider'
elif Chart_faction == '2':
if msg['Select'] in airvichile:
msg['Select'] = 'Reaver'
elif msg['Select'] in landvichile:
msg['Select'] = 'Vanguard'
elif Chart_faction == '3':
if msg['Select'] in airvichile:
msg['Select'] = 'Mosquito'
elif msg['Select'] in landvichile:
msg['Select'] = 'Prowler'
elif Chart_faction == '4':
if msg['Select'] in airvichile:
msg['Select'] = 'Dervish'
elif msg['Select'] in landvichile:
msg['Select'] = 'Chimera'
else:
_log.info('line 693 error')
messageResult = await message._api.post_group_message(
group_openid=message.group_openid,
msg_type=0,
msg_id=message.id,
msg_seq= 2,
content=str('看起来这个角色并没有敌方阵营的载具,让我帮你换一下。'),
)
_log.info(messageResult)
_log.info(msg)
Vechile_BasicDate = await Specific_query().select_vehicle(Vechile_BasicDate_ori, Select=msg["Select"])
#_log.info(Vechile_BasicDate)
Vechile_weapon_data = Vechile_BasicDate[0]['weaponStat']
sorting_data = await sorting().Data_sorting(Vechile_weapon_data, msg['Mode'])
list_num = len(Vechile_weapon_data)+1
web_body = await Specific_query().vechile_img(date, Vechile_BasicDate, sorting_data, list_num, msg['Mode'])
web_url = 'https://bot.file.sunderer.games/'
file_url = web_url + web_body
uploadMedia = await message._api.post_group_file(
group_openid=message.group_openid,
file_type=1, # 文件类型要对应上,具体支持的类型见方法说明
url=file_url # 文件Url
)
messageResult = await message._api.post_group_message(
group_openid=message.group_openid,
msg_type=7,
msg_seq= 3,
msg_id=message.id,
#content=f"收到了消息:{message.content}",
media=uploadMedia,
)
_log.info(messageResult)
file_path = os.path.join('/home/bot/QQbot/Charter_Sundy_Query/Output',web_body)
os.remove(file_path)
elif '查询' in text:
file_url = await Fuck_tx().Server_query(message)
uploadMedia = await message._api.post_group_file(
group_openid=message.group_openid,
file_type=1, # 文件类型要对应上,具体支持的类型见方法说明
url=file_url # 文件Url
)
messageResult = await message._api.post_group_message(
group_openid=message.group_openid,
msg_type=7,
msg_id=message.id,
#content=f"收到了消息:{message.content}",
media=uploadMedia,
)
_log.info(messageResult)
class Fuck_tx():
async def Server_query(self,message):
text = message.content
web_url = 'https://bot.file.sunderer.games/'
stripped_msg = text.strip()
words = posseg.lcut(stripped_msg)
Server = None
for word in words:
# 每个元素是一个 pair 对象,包含 word 和 flag 两个属性,分别表示词和词性
if word.flag == "ser":
# ns 词性表示地名
Server = word.word
break
if Server != None:
test_config = read(os.path.join(os.path.dirname(__file__), "config.yaml"))
if test_config['Reply_Mode'] == '0':
if Server == "索泰克":
web_body = 'error.png'#'/Soltech_Sundy.jpg'#'error.png'#
elif Server == "温怀特":
web_body = 'error.png'#'/Wainwright_Sundy.jpg'#'error.png'#
elif Server == "奥斯普雷":
web_body = 'error.png'#'/Osprey_Sundy.jpg'#'error.png'#
file_url = web_url + web_body
return file_url
elif test_config['Reply_Mode'] == '1':
web_body = 'error.png'
file_url = web_url + web_body
return file_url
elif test_config['Reply_Mode'] == '2':
web_body = 'Server.jpg'
file_url = web_url + web_body
return file_url
async def Error_Mode(self):
try:
test_config = read(os.path.join(os.path.dirname(__file__), "config.yaml"))
test_config['Reply_Mode'] = '1'
with open((os.path.join(os.path.dirname(__file__), "config.yaml")), "w") as file:
yaml.dump(test_config, file)
return True
except:
return False
async def Server_Mode(self):
try:
test_config = read(os.path.join(os.path.dirname(__file__), "config.yaml"))
test_config['Reply_Mode'] = '2'
with open((os.path.join(os.path.dirname(__file__), "config.yaml")), "w") as file:
yaml.dump(test_config, file)
return True
except:
return False
async def Common_Mode(self):
try:
test_config = read(os.path.join(os.path.dirname(__file__), "config.yaml"))
test_config['Reply_Mode'] = '0'
with open((os.path.join(os.path.dirname(__file__), "config.yaml")), "w") as file:
yaml.dump(test_config, file)
return True
except:
return False
async def Now_Cfg(self):
try:
test_config = read(os.path.join(os.path.dirname(__file__), "config.yaml"))
return test_config
except:
return '出错了'
async def Code_Verifica(self,code):
time_now = str(int(time.time()))
time00 = time_now[0:4]
time1 = str(code)[::-1]
time_ver = time00+time1
if int(time_now) < int(time_ver) and (int(time_ver)-300) < int(time_now):
return True
else:
return False
async def Code_Gen(self):
time1 = str(int(time.time())+300)
time3 = time1[::-1][:-4]
return time3
async def Clean_All_Server(self):
url = "https://api.sunderer.games/census/restart"
payload = "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"page_no\"\r\n\r\n1\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"page_size\"\r\n\r\n15\r\n-----011000010111000001101001--\r\n\r\n"
headers = {"content-type": "multipart/form-data; boundary=---011000010111000001101001"}
response = requests.request("POST", url, data=payload, headers=headers)
return response.text
async def Clean_Specific_Server(self,server):
url = "https://api.sunderer.games/census/restart/server"
payload = {"ServerName": ""}
payload['ServerName'] = str(server)
headers = {"content-type": "application/json"}
response = requests.request("POST", url, json=payload, headers=headers)
return response.text
async def Online_Query(self,id):
url = "https://api.sunderer.games/census/character/search"
querystring = {"name": ""}
querystring["name"] = id
response = requests.request("GET", url, params=querystring)
response = response.json()
online_flag = response['basicInfo']['online']
return online_flag
if __name__ == "__main__":
# 通过预设置的类型,设置需要监听的事件通道
# intents = botpy.Intents.none()
# intents.public_messages=True
# 通过kwargs,设置需要监听的事件通道
intents = botpy.Intents(public_messages=True)
client = MyClient(intents=intents)
client.run(appid=test_config["appid"], secret=test_config["secret"])
+331
View File
@@ -0,0 +1,331 @@
# -*- coding: utf-8 -*-
import asyncio
import os
from jieba import posseg
import yaml
import jieba
import botpy
from botpy import logging, BotAPI
from botpy.ext.cog_yaml import read
from botpy.message import GroupMessage, Message,C2CMessage
from botpy.manage import C2CManageEvent
from botpy.ext.command_util import Commands
import time
import requests
test_config = read(os.path.join(os.path.dirname(__file__), "config.yaml"))
jieba.load_userdict(os.path.join(os.path.dirname(__file__), "dict.txt"))
_log = logging.get_logger()
class MyClient(botpy.Client):
async def on_ready(self):
_log.info(f"robot 「{self.robot.name}」 on_ready!")
async def on_group_at_message_create(self, message: GroupMessage):
text = (message.content).strip()
if 'Error' in text or '正常' in text or '维护模式' in text or '当前模式' in text or '测试' in text:
stripped_msg = text.strip()
words = posseg.lcut(stripped_msg)
for word in words:
# 每个元素是一个 pair 对象,包含 word 和 flag 两个属性,分别表示词和词性
if word.flag == "m":
# ns 词性表示地名
Verification = str(int(word.word))
Verification = Verification.zfill(6)
break
Ver = await Fuck_tx().Code_Verifica(Verification)
if Ver == True:
if 'Error' in text:
flag = await Fuck_tx().Error_Mode()
if flag == True:
messageResult = await message._api.post_group_message(
group_openid=message.group_openid,
msg_type=0,
msg_id=message.id,
content=f"Reply_Mode修改为1",
)
_log.info(messageResult)
else:
messageResult = await message._api.post_group_message(
group_openid=message.group_openid,
msg_type=0,
msg_id=message.id,
content=f"Reply_Mode修改失败",
)
_log.info(messageResult)
elif '正常' in text:
flag = await Fuck_tx().Common_Mode()
if flag == True:
messageResult = await message._api.post_group_message(
group_openid=message.group_openid,
msg_type=0,
msg_id=message.id,
content=f"Reply_Mode修改为0",
)
_log.info(messageResult)
else:
messageResult = await message._api.post_group_message(
group_openid=message.group_openid,
msg_type=0,
msg_id=message.id,
content=f"Reply_Mode修改失败",
)
_log.info(messageResult)
elif '当前模式' in text:
text = await Fuck_tx().Now_Cfg()
if text['Reply_Mode'] == '0':
messageResult = await message._api.post_group_message(
group_openid=message.group_openid,
msg_type=0,
msg_id=message.id,
content=f"当前为普通模式,Reply_Mode为:{text['Reply_Mode']}",
)
_log.info(messageResult)
elif text['Reply_Mode'] == '1':
messageResult = await message._api.post_group_message(
group_openid=message.group_openid,
msg_type=0,
msg_id=message.id,
content=f"当前为Error模式,Reply_Mode为:{text['Reply_Mode']}",
)
_log.info(messageResult)
elif '测试' in text:
text = await Fuck_tx().Now_Cfg()
if text['Reply_Mode'] == '0':
messageResult = await message._api.post_group_message(
group_openid=message.group_openid,
msg_type=0,
msg_id=message.id,
#不包含message_id为主动发文
content=f"当前为普通模式,Reply_Mode为:{text['Reply_Mode']}",
)
_log.info(messageResult)
elif text['Reply_Mode'] == '1':
messageResult = await message._api.post_group_message(
group_openid=message.group_openid,
msg_type=0,
msg_id=message.id,
content=f"当前为Error模式,Reply_Mode为:{text['Reply_Mode']}",
)
_log.info(messageResult)
elif '维护模式' in text:
flag = await Fuck_tx().Server_Mode()
if flag == True:
messageResult = await message._api.post_group_message(
group_openid=message.group_openid,
msg_type=0,
msg_id=message.id,
content=f"Reply_Mode修改为2",
)
_log.info(messageResult)
else:
messageResult = await message._api.post_group_message(
group_openid=message.group_openid,
msg_type=0,
msg_id=message.id,
content=f"Reply_Mode修改失败",
)
_log.info(messageResult)
else:
messageResult = await message._api.post_group_message(
group_openid=message.group_openid,
msg_type=0,
msg_id=message.id,
content=f"你谁啊你",
)
_log.info(messageResult)
elif '你瞅啥' in text:
messageResult = await message._api.post_group_message(
group_openid=message.group_openid,
msg_type=0,
msg_id=message.id,#'ROBOT1.0_iqHc6IePSUh91RXfdrmBvNQE6XX6zpF9LAGEqhTRX5JcmtPXIy7o3e6hAHskAxaMNjMB4nSmAPGOUqoyZisnpw!!',
content=f"瞅你咋地",
)
_log.info(messageResult)
elif '人口查询' in text:
file_url = 'http://ly1.dc.sunderer.games:3000/test.png'
uploadMedia = await message._api.post_group_file(
group_openid=message.group_openid,
file_type=1, # 文件类型要对应上,具体支持的类型见方法说明
url=file_url # 文件Url
)
messageResult = await message._api.post_group_message(
group_openid=message.group_openid,
msg_type=7,
msg_id=message.id,
#content=f"收到了消息:{message.content}",
media=uploadMedia,
)
_log.info(messageResult)
elif '查询' in text:
file_url = await Fuck_tx().Server_query(message)
uploadMedia = await message._api.post_group_file(
group_openid=message.group_openid,
file_type=1, # 文件类型要对应上,具体支持的类型见方法说明
url=file_url # 文件Url
)
messageResult = await message._api.post_group_message(
group_openid=message.group_openid,
msg_type=7,
msg_id=message.id,
#content=f"收到了消息:{message.content}",
media=uploadMedia,
)
_log.info(messageResult)
class Fuck_tx():
async def Server_query(self,message):
text = message.content
web_url = 'http://ly1.dc.sunderer.games:3000/'
stripped_msg = text.strip()
words = posseg.lcut(stripped_msg)
Server = None
for word in words:
# 每个元素是一个 pair 对象,包含 word 和 flag 两个属性,分别表示词和词性
if word.flag == "ser":
# ns 词性表示地名
Server = word.word
break
if Server != None:
test_config = read(os.path.join(os.path.dirname(__file__), "config.yaml"))
if test_config['Reply_Mode'] == '0':
if Server == "索泰克":
web_body = '/Soltech.jpg'
elif Server == "米勒":
web_body = '/Miller.jpg'
elif Server == "艾莫若德":
web_body = '/Emerald.jpg'
elif Server == "康纳利":
web_body = '/Connery.jpg'
elif Server == "柯伯特":
web_body = '/Cobalt.jpg'
file_url = web_url + web_body
return file_url
elif test_config['Reply_Mode'] == '1':
web_body = 'error.png'
file_url = web_url + web_body
return file_url
elif test_config['Reply_Mode'] == '2':
web_body = 'Server.jpg'
file_url = web_url + web_body
return file_url
async def Error_Mode(self):
try:
test_config = read(os.path.join(os.path.dirname(__file__), "config.yaml"))
test_config['Reply_Mode'] = '1'
with open((os.path.join(os.path.dirname(__file__), "config.yaml")), "w") as file:
yaml.dump(test_config, file)
return True
except:
return False
async def Server_Mode(self):
try:
test_config = read(os.path.join(os.path.dirname(__file__), "config.yaml"))
test_config['Reply_Mode'] = '2'
with open((os.path.join(os.path.dirname(__file__), "config.yaml")), "w") as file:
yaml.dump(test_config, file)
return True
except:
return False
async def Common_Mode(self):
try:
test_config = read(os.path.join(os.path.dirname(__file__), "config.yaml"))
test_config['Reply_Mode'] = '0'
with open((os.path.join(os.path.dirname(__file__), "config.yaml")), "w") as file:
yaml.dump(test_config, file)
return True
except:
return False
async def Now_Cfg(self):
try:
test_config = read(os.path.join(os.path.dirname(__file__), "config.yaml"))
return test_config
except:
return '出错了'
async def Code_Verifica(self,code):
time_now = str(int(time.time()))
time00 = time_now[0:4]
time1 = str(code)[::-1]
time_ver = time00+time1
if int(time_now) < int(time_ver) and (int(time_ver)-300) < int(time_now):
return True
else:
return False
async def Code_Gen(self):
time1 = str(int(time.time())+300)
time3 = time1[::-1][:-4]
return time3
async def Clean_All_Server(self):
url = "https://api.sunderer.games/census/restart"
payload = "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"page_no\"\r\n\r\n1\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"page_size\"\r\n\r\n15\r\n-----011000010111000001101001--\r\n\r\n"
headers = {"content-type": "multipart/form-data; boundary=---011000010111000001101001"}
response = requests.request("POST", url, data=payload, headers=headers)
return response.text
async def Clean_Specific_Server(self,server):
url = "https://api.sunderer.games/census/restart/server"
payload = {"ServerName": ""}
payload['ServerName'] = str(server)
headers = {"content-type": "application/json"}
response = requests.request("POST", url, json=payload, headers=headers)
return response.text
if __name__ == "__main__":
# 通过预设置的类型,设置需要监听的事件通道
# intents = botpy.Intents.none()
# intents.public_messages=True
# 通过kwargs,设置需要监听的事件通道
intents = botpy.Intents(public_messages=True)
client = MyClient(intents=intents)
client.run(appid=test_config["appid"], secret=test_config["secret"])
+21
View File
@@ -0,0 +1,21 @@
import requests
from PIL import Image
from io import BytesIO
# 图片的完整 URL
Avatar_url = "https://u.sunderer.games/storage/default/20241222/我的世界-minecraft_9478e13cb10ec60f31a7674a80417f0046cdff0b.png"
# 发送 GET 请求获取图片数据
response = requests.get(Avatar_url)
# 检查请求是否成功
if response.status_code == 200:
# 使用 PIL 打开图片
img = Image.open(BytesIO(response.content)) # 将字节数据转换为图像
#img.show() # 显示图片
else:
print(f"图片下载失败,状态码: {response.status_code}")
Avatar = Image.open(BytesIO((requests.get(Avatar_url).content)))
Avatar.show()
+46
View File
@@ -0,0 +1,46 @@
from PIL import Image, ImageDraw
def add_rounded_corners(image, radius, color):
# 创建一个与原始图像大小相同的掩膜图像
mask = Image.new("L", (1600,800), 0)
draw = ImageDraw.Draw(mask)
image = original_image
# 获取原始图像的宽度和高度
width, height = image.size
# 计算裁剪框的左上角和右下角坐标
left = (width - 1600) / 2
top = (height - 800) / 2
right = (width + 1600) / 2
bottom = (height + 800) / 2
# 使用crop()方法裁剪图像
cropped_image = image.crop((left, top, right, bottom))
# 在掩膜图像上绘制一个带有圆角的矩形
draw.pieslice([0, 0, radius * 2, radius * 2], 180, 270, fill=255)
draw.pieslice([cropped_image.width - 2 * radius, 0, cropped_image.width, 2 * radius], 270, 360, fill=255)
draw.pieslice([0, cropped_image.height - 2 * radius, 2 * radius, cropped_image.height], 90, 180, fill=255)
draw.pieslice([cropped_image.width - 2 * radius, cropped_image.height - 2 * radius, cropped_image.width, cropped_image.height], 0, 90, fill=255)
draw.rectangle([radius, 0, cropped_image.width - radius, cropped_image.height], fill=255)
draw.rectangle([0, radius, cropped_image.width, cropped_image.height - radius], fill=255)
# 创建一个新图像,并将原始图像放置在上面
result = Image.new("RGBA", cropped_image.size, (0, 0, 0, 0))
result.paste(cropped_image, (0, 0), mask)
return result
# 打开原始图片
original_image = Image.open("img.png").convert("RGBA")
# 添加圆角效果
rounded_image = add_rounded_corners(original_image, 160, (0, 0, 0, 0))
# 保存处理后的图片
#rounded_image.save("rounded_image.png")
rounded_image.show()
+46
View File
@@ -0,0 +1,46 @@
from PIL import Image, ImageDraw
def add_rounded_corners(image, radius, color):
# 创建一个与原始图像大小相同的掩膜图像
mask = Image.new("L", (1600,1400), 0)
draw = ImageDraw.Draw(mask)
image = original_image
# 获取原始图像的宽度和高度
width, height = image.size
# 计算裁剪框的左上角和右下角坐标
left = (width - 1600) / 2
top = (height - 1400) / 2
right = (width + 1600) / 2
bottom = (height + 1400) / 2
# 使用crop()方法裁剪图像
cropped_image = image.crop((left, top, right, bottom))
# 在掩膜图像上绘制一个带有圆角的矩形
draw.pieslice([0, 0, radius * 2, radius * 2], 180, 270, fill=255)
draw.pieslice([cropped_image.width - 2 * radius, 0, cropped_image.width, 2 * radius], 270, 360, fill=255)
draw.pieslice([0, cropped_image.height - 2 * radius, 2 * radius, cropped_image.height], 90, 180, fill=255)
draw.pieslice([cropped_image.width - 2 * radius, cropped_image.height - 2 * radius, cropped_image.width, cropped_image.height], 0, 90, fill=255)
draw.rectangle([radius, 0, cropped_image.width - radius, cropped_image.height], fill=255)
draw.rectangle([0, radius, cropped_image.width, cropped_image.height - radius], fill=255)
# 创建一个新图像,并将原始图像放置在上面
result = Image.new("RGBA", cropped_image.size, (0, 0, 0, 0))
result.paste(cropped_image, (0, 0), mask)
return result
# 打开原始图片
original_image = Image.open("test.png").convert("RGBA")
# 添加圆角效果
rounded_image = add_rounded_corners(original_image, 160, (0, 0, 0, 0))
# 保存处理后的图片
#rounded_image.save("rounded_image.png")
rounded_image.show()
+46
View File
@@ -0,0 +1,46 @@
from PIL import Image, ImageDraw
def add_rounded_corners(image, radius, color):
# 创建一个与原始图像大小相同的掩膜图像
mask = Image.new("L", (1600,400), 0)
draw = ImageDraw.Draw(mask)
image = original_image
# 获取原始图像的宽度和高度
width, height = image.size
# 计算裁剪框的左上角和右下角坐标
left = (width - 1600) / 2
top = (height - 400) / 2
right = (width + 1600) / 2
bottom = (height + 400) / 2
# 使用crop()方法裁剪图像
cropped_image = image.crop((left, top, right, bottom))
# 在掩膜图像上绘制一个带有圆角的矩形
draw.pieslice([0, 0, radius * 2, radius * 2], 180, 270, fill=255)
draw.pieslice([cropped_image.width - 2 * radius, 0, cropped_image.width, 2 * radius], 270, 360, fill=255)
draw.pieslice([0, cropped_image.height - 2 * radius, 2 * radius, cropped_image.height], 90, 180, fill=255)
draw.pieslice([cropped_image.width - 2 * radius, cropped_image.height - 2 * radius, cropped_image.width, cropped_image.height], 0, 90, fill=255)
draw.rectangle([radius, 0, cropped_image.width - radius, cropped_image.height], fill=255)
draw.rectangle([0, radius, cropped_image.width, cropped_image.height - radius], fill=255)
# 创建一个新图像,并将原始图像放置在上面
result = Image.new("RGBA", cropped_image.size, (0, 0, 0, 0))
result.paste(cropped_image, (0, 0), mask)
return result
# 打开原始图片
original_image = Image.open("img.png").convert("RGBA")
# 添加圆角效果
rounded_image = add_rounded_corners(original_image, 50, (0, 0, 0, 0))
# 保存处理后的图片
#rounded_image.save("rounded_image.png")
rounded_image.show()