ddapi 0.12.1__tar.gz → 0.12.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {ddapi-0.12.1 → ddapi-0.12.2}/PKG-INFO +1 -1
- {ddapi-0.12.1 → ddapi-0.12.2}/ddapi/ddapi/__init__.py +1 -1
- {ddapi-0.12.1 → ddapi-0.12.2}/ddapi/ddapi/scheme/__init__.py +0 -1
- {ddapi-0.12.1 → ddapi-0.12.2}/ddapi/ddapi/scheme/ddnet.py +34 -2
- {ddapi-0.12.1 → ddapi-0.12.2}/ddapi/ddapi/scheme/ddstats_tw.py +19 -5
- ddapi-0.12.2/ddapi/ddapi/scheme/status_tw.py +131 -0
- {ddapi-0.12.1 → ddapi-0.12.2}/ddapi/ddapi.egg-info/PKG-INFO +1 -1
- {ddapi-0.12.1 → ddapi-0.12.2}/ddapi/ddapi.egg-info/SOURCES.txt +0 -1
- {ddapi-0.12.1 → ddapi-0.12.2}/setup.cfg +1 -1
- {ddapi-0.12.1 → ddapi-0.12.2}/setup.py +1 -1
- ddapi-0.12.1/ddapi/ddapi/scheme/base.py +0 -37
- ddapi-0.12.1/ddapi/ddapi/scheme/status_tw.py +0 -131
- {ddapi-0.12.1 → ddapi-0.12.2}/LICENSE +0 -0
- {ddapi-0.12.1 → ddapi-0.12.2}/README.md +0 -0
- {ddapi-0.12.1 → ddapi-0.12.2}/ddapi/ddapi/api.py +0 -0
- {ddapi-0.12.1 → ddapi-0.12.2}/ddapi/ddapi/main.py +0 -0
- {ddapi-0.12.1 → ddapi-0.12.2}/ddapi/ddapi/types.py +0 -0
- {ddapi-0.12.1 → ddapi-0.12.2}/ddapi/ddapi.egg-info/dependency_links.txt +0 -0
- {ddapi-0.12.1 → ddapi-0.12.2}/ddapi/ddapi.egg-info/top_level.txt +0 -0
|
@@ -5,11 +5,43 @@ from typing import Optional, Any
|
|
|
5
5
|
|
|
6
6
|
from pydantic import BaseModel, Field
|
|
7
7
|
|
|
8
|
-
from .base import DRank, DDType, DPoints
|
|
9
|
-
|
|
10
8
|
rm_list = ["DD-Persian", "/vDQMHSss8W", ""]
|
|
11
9
|
|
|
12
10
|
|
|
11
|
+
class DRank(BaseModel):
|
|
12
|
+
points: Optional[int] = None
|
|
13
|
+
rank: Optional[int] = None
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
class DPoints(BaseModel):
|
|
17
|
+
total: int
|
|
18
|
+
points: Optional[int] = Field(default=None)
|
|
19
|
+
rank: Optional[int] = Field(default=None)
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
class DData(BaseModel):
|
|
23
|
+
points: Optional[DPoints] = Field(default=None)
|
|
24
|
+
team_rank: Optional[DRank] = Field(default=None)
|
|
25
|
+
rank: Optional[DRank] = Field(default=None)
|
|
26
|
+
maps: Optional[dict] = Field(default=None)
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
class DDType(BaseModel):
|
|
30
|
+
Novice: Optional[DData] = None
|
|
31
|
+
Moderate: Optional[DData] = None
|
|
32
|
+
Brutal: Optional[DData] = None
|
|
33
|
+
Insane: Optional[DData] = None
|
|
34
|
+
Dummy: Optional[DData] = None
|
|
35
|
+
DDmaX_Easy: Optional[DData] = Field(default=None, validation_alias="DDmaX.Easy")
|
|
36
|
+
DDmaX_Next: Optional[DData] = Field(default=None, validation_alias="DDmaX.Next")
|
|
37
|
+
DDmaX_Nut: Optional[DData] = Field(default=None, validation_alias="DDmaX.Nut")
|
|
38
|
+
DDmaX_Pro: Optional[DData] = Field(default=None, validation_alias="DDmaX.Pro")
|
|
39
|
+
Oldschool: Optional[DData] = Field(default=None)
|
|
40
|
+
Race: Optional[DData] = None
|
|
41
|
+
Solo: Optional[DData] = None
|
|
42
|
+
total: Optional[DData] = None
|
|
43
|
+
|
|
44
|
+
|
|
13
45
|
class MaxFinishes(BaseModel):
|
|
14
46
|
rank: int
|
|
15
47
|
player: str
|
|
@@ -4,14 +4,28 @@ from typing import Optional
|
|
|
4
4
|
|
|
5
5
|
from pydantic import BaseModel, Field
|
|
6
6
|
|
|
7
|
-
from .base import DDType
|
|
8
|
-
|
|
9
7
|
|
|
10
8
|
class PData(BaseModel):
|
|
11
9
|
rank: int
|
|
12
10
|
points: int
|
|
13
11
|
|
|
14
12
|
|
|
13
|
+
class PPoints(BaseModel):
|
|
14
|
+
Novice: Optional[PData] = None
|
|
15
|
+
Moderate: Optional[PData] = None
|
|
16
|
+
Brutal: Optional[PData] = None
|
|
17
|
+
Insane: Optional[PData] = None
|
|
18
|
+
Dummy: Optional[PData] = None
|
|
19
|
+
DDmaX_Easy: Optional[PData] = Field(default=None, validation_alias="DDmaX.Easy")
|
|
20
|
+
DDmaX_Next: Optional[PData] = Field(default=None, validation_alias="DDmaX.Next")
|
|
21
|
+
DDmaX_Nut: Optional[PData] = Field(default=None, validation_alias="DDmaX.Nut")
|
|
22
|
+
DDmaX_Pro: Optional[PData] = Field(default=None, validation_alias="DDmaX.Pro")
|
|
23
|
+
Oldschool: Optional[PData] = None
|
|
24
|
+
Race: Optional[PData] = None
|
|
25
|
+
Solo: Optional[PData] = None
|
|
26
|
+
total: Optional[PData] = None
|
|
27
|
+
|
|
28
|
+
|
|
15
29
|
class PointG(BaseModel):
|
|
16
30
|
date: str
|
|
17
31
|
points: int
|
|
@@ -101,9 +115,9 @@ class Points(BaseModel):
|
|
|
101
115
|
weekly_points: Optional[PData] = None
|
|
102
116
|
monthly_points: Optional[PData] = None
|
|
103
117
|
yearly_points: Optional[PData] = None
|
|
104
|
-
points:
|
|
105
|
-
rank_points:
|
|
106
|
-
team_points:
|
|
118
|
+
points: PPoints
|
|
119
|
+
rank_points: PPoints
|
|
120
|
+
team_points: PPoints
|
|
107
121
|
|
|
108
122
|
|
|
109
123
|
class RecentActivity(BaseModel):
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
# Status.tw
|
|
2
|
+
from datetime import datetime
|
|
3
|
+
from enum import StrEnum
|
|
4
|
+
from typing import Optional
|
|
5
|
+
|
|
6
|
+
from pydantic import BaseModel, Field
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class ChartEnum(StrEnum):
|
|
10
|
+
day = "day"
|
|
11
|
+
week = "week"
|
|
12
|
+
month = "month"
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
class DataTw(BaseModel):
|
|
16
|
+
name: str
|
|
17
|
+
created_at: datetime = Field(alias="createdAt")
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class VersionTw(BaseModel):
|
|
21
|
+
version: str
|
|
22
|
+
created_at: datetime = Field(alias="createdAt")
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
class CountryTw(BaseModel):
|
|
26
|
+
identifier: str
|
|
27
|
+
code: int
|
|
28
|
+
icon_url: str = Field(alias="iconUrl")
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
class ClientTw(BaseModel):
|
|
32
|
+
name: str
|
|
33
|
+
country: CountryTw
|
|
34
|
+
score: int
|
|
35
|
+
is_player: bool = Field(alias="isPlayer")
|
|
36
|
+
is_afk: bool = Field(alias="isAfk")
|
|
37
|
+
team: int
|
|
38
|
+
created_at: datetime = Field(alias="createdAt")
|
|
39
|
+
clan: DataTw | None
|
|
40
|
+
server: "ServerTw" = None
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
class ServerTw(BaseModel):
|
|
44
|
+
ip: str
|
|
45
|
+
port: int
|
|
46
|
+
name: str
|
|
47
|
+
num_clients: int = Field(alias="numClients")
|
|
48
|
+
num_players: int = Field(alias="numPlayers")
|
|
49
|
+
max_clients: int = Field(alias="maxClients")
|
|
50
|
+
max_players: int = Field(alias="maxPlayers")
|
|
51
|
+
has_password: bool = Field(alias="hasPassword")
|
|
52
|
+
supports6: bool
|
|
53
|
+
supports7: bool
|
|
54
|
+
created_at: datetime = Field(alias="createdAt")
|
|
55
|
+
relevance_score: int = Field(alias="relevanceScore")
|
|
56
|
+
client_score_kind: str | None = Field(alias="clientScoreKind")
|
|
57
|
+
logo_url: str = Field(alias="logoUrl")
|
|
58
|
+
map: DataTw
|
|
59
|
+
website: Optional[str] = None
|
|
60
|
+
discord_invite: Optional[str] = Field(None, alias="discordInvite")
|
|
61
|
+
description: Optional[str] = None
|
|
62
|
+
game_type: DataTw = Field(alias="gameType")
|
|
63
|
+
version: VersionTw
|
|
64
|
+
clients: list[ClientTw]
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
class ServerTwOne(BaseModel):
|
|
68
|
+
ip: str
|
|
69
|
+
port: int
|
|
70
|
+
online: ServerTw
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
class Chart(BaseModel):
|
|
74
|
+
avg_players: float = Field(alias="avgPlayers")
|
|
75
|
+
max_players: int = Field(alias="maxPlayers")
|
|
76
|
+
min_players: int = Field(alias="minPlayers")
|
|
77
|
+
timestamp: datetime
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
class Charts(BaseModel):
|
|
81
|
+
charts: list[Chart]
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
class MasterTw(BaseModel):
|
|
85
|
+
servers: list[ServerTw]
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
class Info(BaseModel):
|
|
89
|
+
app: str
|
|
90
|
+
version: str
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
class BannedMasterData(BaseModel):
|
|
94
|
+
ip: str
|
|
95
|
+
is_active: bool = Field(alias="isActive")
|
|
96
|
+
reason: str | None
|
|
97
|
+
unban_date: datetime | None = Field(alias="unbanDate")
|
|
98
|
+
created_at: datetime = Field(alias="createdAt")
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
class BannedMaster(BaseModel):
|
|
102
|
+
servers: list[BannedMasterData]
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
class ListData(BaseModel):
|
|
106
|
+
name: str
|
|
107
|
+
created_at: datetime = Field(alias="createdAt")
|
|
108
|
+
servers: list[ServerTw]
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
class List(BaseModel):
|
|
112
|
+
data: list[ListData]
|
|
113
|
+
|
|
114
|
+
|
|
115
|
+
class ListPlData(BaseModel):
|
|
116
|
+
name: str
|
|
117
|
+
created_at: datetime = Field(alias="createdAt")
|
|
118
|
+
players: list[ClientTw]
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
class ListPl(BaseModel):
|
|
122
|
+
data: list[ListPlData]
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
class Stats(BaseModel):
|
|
126
|
+
num_players: int = Field(alias="numPlayers")
|
|
127
|
+
num_clans: int = Field(alias="numClans")
|
|
128
|
+
num_servers: int = Field(alias="numServers")
|
|
129
|
+
num_maps: int = Field(alias="numMaps")
|
|
130
|
+
num_game_types: int = Field(alias="numGameTypes")
|
|
131
|
+
num_versions: int = Field(alias="numVersions")
|
|
@@ -11,7 +11,6 @@ ddapi/ddapi.egg-info/SOURCES.txt
|
|
|
11
11
|
ddapi/ddapi.egg-info/dependency_links.txt
|
|
12
12
|
ddapi/ddapi.egg-info/top_level.txt
|
|
13
13
|
ddapi/ddapi/scheme/__init__.py
|
|
14
|
-
ddapi/ddapi/scheme/base.py
|
|
15
14
|
ddapi/ddapi/scheme/ddnet.py
|
|
16
15
|
ddapi/ddapi/scheme/ddstats_tw.py
|
|
17
16
|
ddapi/ddapi/scheme/status_tw.py
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
from typing import Optional
|
|
2
|
-
|
|
3
|
-
from pydantic import BaseModel, Field
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
class DRank(BaseModel):
|
|
7
|
-
points: Optional[int] = None
|
|
8
|
-
rank: Optional[int] = None
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
class DPoints(BaseModel):
|
|
12
|
-
total: int
|
|
13
|
-
points: Optional[int] = Field(default=None)
|
|
14
|
-
rank: Optional[int] = Field(default=None)
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
class DData(BaseModel):
|
|
18
|
-
points: Optional[DPoints] = Field(default=None)
|
|
19
|
-
team_rank: Optional[DRank] = Field(default=None)
|
|
20
|
-
rank: Optional[DRank] = Field(default=None)
|
|
21
|
-
maps: Optional[dict] = Field(default=None)
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
class DDType(BaseModel):
|
|
25
|
-
Novice: Optional[DData] = None
|
|
26
|
-
Moderate: Optional[DData] = None
|
|
27
|
-
Brutal: Optional[DData] = None
|
|
28
|
-
Insane: Optional[DData] = None
|
|
29
|
-
Dummy: Optional[DData] = None
|
|
30
|
-
DDmaX_Easy: Optional[DData] = Field(default=None, validation_alias="DDmaX.Easy")
|
|
31
|
-
DDmaX_Next: Optional[DData] = Field(default=None, validation_alias="DDmaX.Next")
|
|
32
|
-
DDmaX_Nut: Optional[DData] = Field(default=None, validation_alias="DDmaX.Nut")
|
|
33
|
-
DDmaX_Pro: Optional[DData] = Field(default=None, validation_alias="DDmaX.Pro")
|
|
34
|
-
Oldschool: Optional[DData] = Field(default=None)
|
|
35
|
-
Race: Optional[DData] = None
|
|
36
|
-
Solo: Optional[DData] = None
|
|
37
|
-
total: Optional[DData] = None
|
|
@@ -1,131 +0,0 @@
|
|
|
1
|
-
# Status.tw
|
|
2
|
-
from datetime import datetime
|
|
3
|
-
from enum import StrEnum
|
|
4
|
-
from typing import Optional
|
|
5
|
-
|
|
6
|
-
from pydantic import BaseModel, Field
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
class ChartEnum(StrEnum):
|
|
10
|
-
day = "day"
|
|
11
|
-
week = "week"
|
|
12
|
-
month = "month"
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
class DataTw(BaseModel):
|
|
16
|
-
name: str
|
|
17
|
-
created_at: datetime = Field(serialization_alias="createdAt")
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
class VersionTw(BaseModel):
|
|
21
|
-
version: str
|
|
22
|
-
created_at: datetime = Field(serialization_alias="createdAt")
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
class CountryTw(BaseModel):
|
|
26
|
-
identifier: str
|
|
27
|
-
code: int
|
|
28
|
-
icon_url: str = Field(serialization_alias="iconUrl")
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
class ClientTw(BaseModel):
|
|
32
|
-
name: str
|
|
33
|
-
country: CountryTw
|
|
34
|
-
score: int
|
|
35
|
-
is_player: bool = Field(serialization_alias="isPlayer")
|
|
36
|
-
is_afk: bool = Field(serialization_alias="isAfk")
|
|
37
|
-
team: int
|
|
38
|
-
created_at: datetime = Field(serialization_alias="createdAt")
|
|
39
|
-
clan: DataTw | None
|
|
40
|
-
server: "ServerTw" = None
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
class ServerTw(BaseModel):
|
|
44
|
-
ip: str
|
|
45
|
-
port: int
|
|
46
|
-
name: str
|
|
47
|
-
num_clients: int = Field(serialization_alias="numClients")
|
|
48
|
-
num_players: int = Field(serialization_alias="numPlayers")
|
|
49
|
-
max_clients: int = Field(serialization_alias="maxClients")
|
|
50
|
-
max_players: int = Field(serialization_alias="maxPlayers")
|
|
51
|
-
has_password: bool = Field(serialization_alias="hasPassword")
|
|
52
|
-
supports6: bool
|
|
53
|
-
supports7: bool
|
|
54
|
-
created_at: datetime = Field(serialization_alias="createdAt")
|
|
55
|
-
relevance_score: int = Field(serialization_alias="relevanceScore")
|
|
56
|
-
client_score_kind: str | None = Field(serialization_alias="clientScoreKind")
|
|
57
|
-
logo_url: str = Field(serialization_alias="logoUrl")
|
|
58
|
-
map: DataTw
|
|
59
|
-
website: Optional[str] = None
|
|
60
|
-
discord_invite: Optional[str] = Field(None, serialization_alias="discordInvite")
|
|
61
|
-
description: Optional[str] = None
|
|
62
|
-
game_type: DataTw = Field(serialization_alias="gameType")
|
|
63
|
-
version: VersionTw
|
|
64
|
-
clients: list[ClientTw]
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
class ServerTwOne(BaseModel):
|
|
68
|
-
ip: str
|
|
69
|
-
port: int
|
|
70
|
-
online: ServerTw
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
class Chart(BaseModel):
|
|
74
|
-
avg_players: float = Field(serialization_alias="avgPlayers")
|
|
75
|
-
max_players: int = Field(serialization_alias="maxPlayers")
|
|
76
|
-
min_players: int = Field(serialization_alias="minPlayers")
|
|
77
|
-
timestamp: datetime
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
class Charts(BaseModel):
|
|
81
|
-
charts: list[Chart]
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
class MasterTw(BaseModel):
|
|
85
|
-
servers: list[ServerTw]
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
class Info(BaseModel):
|
|
89
|
-
app: str
|
|
90
|
-
version: str
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
class BannedMasterData(BaseModel):
|
|
94
|
-
ip: str
|
|
95
|
-
is_active: bool = Field(serialization_alias="isActive")
|
|
96
|
-
reason: str | None
|
|
97
|
-
unban_date: datetime | None = Field(serialization_alias="unbanDate")
|
|
98
|
-
created_at: datetime = Field(serialization_alias="createdAt")
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
class BannedMaster(BaseModel):
|
|
102
|
-
servers: list[BannedMasterData]
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
class ListData(BaseModel):
|
|
106
|
-
name: str
|
|
107
|
-
created_at: datetime = Field(serialization_alias="createdAt")
|
|
108
|
-
servers: list[ServerTw]
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
class List(BaseModel):
|
|
112
|
-
data: list[ListData]
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
class ListPlData(BaseModel):
|
|
116
|
-
name: str
|
|
117
|
-
created_at: datetime = Field(serialization_alias="createdAt")
|
|
118
|
-
players: list[ClientTw]
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
class ListPl(BaseModel):
|
|
122
|
-
data: list[ListPlData]
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
class Stats(BaseModel):
|
|
126
|
-
num_players: int = Field(serialization_alias="numPlayers")
|
|
127
|
-
num_clans: int = Field(serialization_alias="numClans")
|
|
128
|
-
num_servers: int = Field(serialization_alias="numServers")
|
|
129
|
-
num_maps: int = Field(serialization_alias="numMaps")
|
|
130
|
-
num_game_types: int = Field(serialization_alias="numGameTypes")
|
|
131
|
-
num_versions: int = Field(serialization_alias="numVersions")
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|