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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ddapi
3
- Version: 0.12.1
3
+ Version: 0.12.2
4
4
  Summary: DDnet api
5
5
  Home-page: https://github.com/ByFox213/ddapi
6
6
  Author: ByFox
@@ -3,6 +3,6 @@
3
3
  from .main import DDnetApi, DDstats, Status
4
4
  from .scheme import * # noqa: F403
5
5
 
6
- __version__ = "0.12.1"
6
+ __version__ = "0.12.2"
7
7
  __author__ = "ByFox"
8
8
  __LICENSE__ = "MIT"
@@ -1,4 +1,3 @@
1
- from .base import * # noqa: F403
2
1
  from .ddnet import * # noqa: F403
3
2
  from .ddstats_tw import * # noqa: F403
4
3
  from .status_tw import * # noqa: F403
@@ -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: DDType
105
- rank_points: DDType
106
- team_points: DDType
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")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ddapi
3
- Version: 0.12.1
3
+ Version: 0.12.2
4
4
  Summary: DDnet api
5
5
  Home-page: https://github.com/ByFox213/ddapi
6
6
  Author: ByFox
@@ -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,6 +1,6 @@
1
1
  [metadata]
2
2
  name = ddapi
3
- version = 0.12.1
3
+ version = 0.12.2
4
4
  author = ByFox
5
5
  description = DDnet api
6
6
  long_description = file: README.md
@@ -5,7 +5,7 @@ with open("README.md", "r", encoding="utf-8") as fh:
5
5
 
6
6
  setuptools.setup(
7
7
  name="ddapi",
8
- version="0.12.1",
8
+ version="0.12.2",
9
9
  author="ByFox",
10
10
  description="DDnet api",
11
11
  long_description=long_description,
@@ -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