-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathfunction.py
117 lines (99 loc) · 3.56 KB
/
function.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
from urllib.parse import quote
import requests
import json
# 读取配置文件
def read_config():
with open('config.json', 'r') as f:
config = json.load(f)
return config
def write_config(config):
with open('config.json', 'w') as f:
json.dump(config, f, indent=4)
def get_bfban_playerinfo(names):
url = f'https://bfban.gametools.network/api/player?personaId={get_PID(names)}'
response = requests.get(url)
data = response.json()
return data
def get_bfban_status(names):
url = f'https://bfban.gametools.network/api/player?personaId={get_PID(names)}'
response = requests.get(url)
data = response.json()
status = data['data']['status']
status = int(status)
bfban_status = ""
if status == -1:
bfban_status = "Not reported"
elif status == 0:
bfban_status = "Unprocessed"
elif status == 1:
bfban_status = "Confirmed hacker"
elif status == 2:
bfban_status = "Suspicious"
elif status == 3:
bfban_status = "Moss self-certification"
elif status == 4:
bfban_status = "Invalid report"
elif status == 5:
bfban_status = "Under discussion"
elif status == 6:
bfban_status = "Needs more votes"
elif status == 7:
bfban_status = "Query failed"
elif status == 8:
bfban_status = "Farm weapons"
return bfban_status
def get_PID(names):
url = f'https://api.gametools.network/bfv/stats/?format_values=true&name={names}&platform=pc&skip_battlelog=false&lang=en-us'
response = requests.get(url)
data = response.json()
PID = data['id']
return PID
def get_UID(names):
url = f'https://api.gametools.network/bfv/stats/?format_values=true&name={names}&platform=pc&skip_battlelog=false&lang=en-us'
response = requests.get(url)
data = response.json()
UID = data['userId']
return UID
def check_bfban_status(names):
url = f'https://bfban.gametools.network/api/player?personaId={get_PID(names)}'
response = requests.get(url)
data = response.json()
return data
def get_bfban_dbid(names):
url = f'https://bfban.gametools.network/api/player?personaId={get_PID(names)}'
response = requests.get(url)
data = response.json()
dbid = data['id']
return dbid
def generate_bfban_link(origin_persona_id):
return f'https://bfban.com/player/{origin_persona_id}'
# 定义 check 函数,检查用户是否在允许列表中
def is_allowed_user(ctx):
discordID = read_config()['discordsuperID']
return str(ctx.author.id) in discordID
def get_bfv_stats(name):
url = f'https://api.gametools.network/bfv/stats/?format_values=true&name={name}&platform=pc&lang=en-us'
response = requests.get(url)
data = response.json()
return data
def convert_time_to_hours(time_string):
# 移除字符串中的空格
time_string = time_string.replace(" ", "")
# 分割时间字符串
days, time = time_string.split('days,')
# 提取小时、分钟和秒数部分
hours, minutes, seconds = map(int, time.split(':'))
# 计算总小时数
total_hours = int(days) * 24 + hours + minutes / 60 + seconds / 3600
return total_hours
def validate_player_name(name):
encoded_name = quote(name)
url = f"https://api.gametools.network/bfv/stats/?format_values=true&name={encoded_name}&platform=pc&lang=en-us"
response = requests.get(url)
data = response.json()
if "error" in data:
return False, data["error"]
elif "userName" in data and data["userName"] == name:
return True, ""
else:
return False, "The player could not be found."