ecapi-sdk 3.2.8__tar.gz → 3.2.9__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: ecapi-sdk
3
- Version: 3.2.8
3
+ Version: 3.2.9
4
4
  Summary: ECAPI SDK for Python
5
5
  Author: EaseCation
6
6
  License: MIT
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "ecapi-sdk"
7
- version = "3.2.8"
7
+ version = "3.2.9"
8
8
  description = "ECAPI SDK for Python"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.9"
@@ -286,10 +286,34 @@ class ReplayAPI(_BaseApi):
286
286
  """预热回放地图轮廓缓存"""
287
287
  return self._post(f"/replay-map-profiles/cache", payload, **kwargs)
288
288
 
289
+ def create_full_data_job(self, payload: Mapping[str, Any], **kwargs: Any) -> Any:
290
+ """创建批量回放完整事件数据解析任务"""
291
+ return self._post(f"/replays/full-data-jobs", payload, **kwargs)
292
+
289
293
  def create_visualization_data_job(self, recordId: Union[int, float], payload: Mapping[str, Any], **kwargs: Any) -> Any:
290
294
  """创建回放结构化数据解析任务"""
291
295
  return self._post(f"/replays/{quote(str(recordId), safe='')}/visualization-data-jobs", payload, **kwargs)
292
296
 
297
+ def download_full_data_record(self, jobId: str, recordId: Union[int, float], **kwargs: Any) -> Any:
298
+ """下载单个回放完整事件二进制包"""
299
+ return self._get(f"/replay-full-data-jobs/{quote(str(jobId), safe='')}/records/{quote(str(recordId), safe='')}/data.br", None, response_type="bytes", **kwargs)
300
+
301
+ def get_full_data(self, jobId: str, **kwargs: Any) -> Any:
302
+ """获取回放完整事件压缩数据"""
303
+ return self._get(f"/replay-full-data-jobs/{quote(str(jobId), safe='')}/data", None, **kwargs)
304
+
305
+ def get_full_data_cache_status(self, payload: Mapping[str, Any], **kwargs: Any) -> Any:
306
+ """批量查询回放完整事件数据缓存状态"""
307
+ return self._post(f"/replays/full-data-cache-status", payload, **kwargs)
308
+
309
+ def get_full_data_job(self, jobId: str, **kwargs: Any) -> Any:
310
+ """查询回放完整事件数据任务"""
311
+ return self._get(f"/replay-full-data-jobs/{quote(str(jobId), safe='')}", None, **kwargs)
312
+
313
+ def get_map_block_index(self, query: Optional[QueryParams] = None, **kwargs: Any) -> Any:
314
+ """获取回放地图完整方块索引缓存"""
315
+ return self._get(f"/replay-map-block-indexes", query, **kwargs)
316
+
293
317
  def get_map_profile(self, query: Optional[QueryParams] = None, **kwargs: Any) -> Any:
294
318
  """获取回放地图轮廓"""
295
319
  return self._get(f"/replay-map-profiles", query, **kwargs)
@@ -431,6 +455,10 @@ class AdminPlayerMerchandiseAPI(_BaseApi):
431
455
  """删除玩家道具"""
432
456
  return self._delete(f"/admin/players/{quote(str(ecid), safe='')}/merchandise/{quote(str(category), safe='')}/{quote(str(itemId), safe='')}", None, **kwargs)
433
457
 
458
+ def find_owners(self, query: Optional[QueryParams] = None, **kwargs: Any) -> Any:
459
+ """按道具反查玩家 ECID"""
460
+ return self._get(f"/admin/merchandise/owners", query, **kwargs)
461
+
434
462
  def list(self, ecid: str, query: Optional[QueryParams] = None, **kwargs: Any) -> Any:
435
463
  """查询玩家商品道具"""
436
464
  return self._get(f"/admin/players/{quote(str(ecid), safe='')}/merchandise", query, **kwargs)
@@ -674,6 +702,10 @@ class PlayerAPI(_BaseApi):
674
702
  """获取玩家皮肤数据"""
675
703
  return self._get(f"/players/{quote(str(ecid), safe='')}/skin", None, response_type="bytes", **kwargs)
676
704
 
705
+ def get_skin_geometry_data(self, ecid: str, **kwargs: Any) -> Any:
706
+ """获取玩家皮肤几何数据"""
707
+ return self._get(f"/players/{quote(str(ecid), safe='')}/skin/geometry", None, **kwargs)
708
+
677
709
  def get_stage_record(self, ecid: str, query: Optional[QueryParams] = None, **kwargs: Any) -> Any:
678
710
  """分页查询玩家关卡记录"""
679
711
  return self._get(f"/players/{quote(str(ecid), safe='')}/stage-records", query, **kwargs)
@@ -10,6 +10,12 @@ Headers = Dict[str, str]
10
10
  AuthCredentials = Dict[str, str]
11
11
  AuthProvider = Callable[[], Union[Optional[AuthCredentials], Awaitable[Optional[AuthCredentials]]]]
12
12
 
13
+ class ReplayAPIGetMapBlockIndexQueryRequired(TypedDict):
14
+ mapPath: QueryValue
15
+
16
+ class ReplayAPIGetMapBlockIndexQuery(ReplayAPIGetMapBlockIndexQueryRequired, total=False):
17
+ refresh: QueryValue
18
+
13
19
  class ReplayAPIGetMapProfileQueryRequired(TypedDict):
14
20
  mapPath: QueryValue
15
21
 
@@ -21,6 +27,7 @@ class ReplayAPICacheMapProfilesBody(TypedDict, total=False):
21
27
  mapPaths: Sequence[Any]
22
28
  prefix: str
23
29
  includeOverview: bool
30
+ includeBlockIndex: bool
24
31
  maxMaps: int
25
32
 
26
33
  class ReplayAPIListReplayRecordsQueryRequired(TypedDict):
@@ -32,6 +39,29 @@ class ReplayAPIListReplayRecordsQuery(ReplayAPIListReplayRecordsQueryRequired, t
32
39
  pageSize: QueryValue
33
40
  gamePrefix: QueryValue
34
41
 
42
+ class ReplayAPIGetFullDataCacheStatusBodyRequired(TypedDict):
43
+ recordIds: Sequence[Any]
44
+
45
+ class ReplayAPIGetFullDataCacheStatusBody(ReplayAPIGetFullDataCacheStatusBodyRequired, total=False):
46
+ includeDerived: bool
47
+ includeStates: bool
48
+ includeGroundContact: bool
49
+ groundSampleRate: int
50
+ groundMaxDistance: int
51
+ concurrency: int
52
+
53
+ class ReplayAPICreateFullDataJobBodyRequired(TypedDict):
54
+ recordIds: Sequence[Any]
55
+
56
+ class ReplayAPICreateFullDataJobBody(ReplayAPICreateFullDataJobBodyRequired, total=False):
57
+ includeDerived: bool
58
+ includeStates: bool
59
+ includeGroundContact: bool
60
+ groundSampleRate: int
61
+ groundMaxDistance: int
62
+ forceRefresh: bool
63
+ concurrency: int
64
+
35
65
  class ReplayAPICreateVisualizationDataJobBody(TypedDict, total=False):
36
66
  includeBlocks: bool
37
67
  includeLandmarks: bool
@@ -119,6 +149,15 @@ class AdminPlayerDataAPISetRankLevelBodyRequired(TypedDict):
119
149
  class AdminPlayerDataAPISetRankLevelBody(AdminPlayerDataAPISetRankLevelBodyRequired, total=False):
120
150
  pass
121
151
 
152
+ class AdminPlayerMerchandiseAPIFindOwnersQueryRequired(TypedDict):
153
+ category: QueryValue
154
+ itemId: QueryValue
155
+
156
+ class AdminPlayerMerchandiseAPIFindOwnersQuery(AdminPlayerMerchandiseAPIFindOwnersQueryRequired, total=False):
157
+ data: QueryValue
158
+ current: QueryValue
159
+ pageSize: QueryValue
160
+
122
161
  class AdminPlayerMerchandiseAPIListQuery(TypedDict, total=False):
123
162
  category: QueryValue
124
163
  itemId: QueryValue
@@ -844,7 +883,13 @@ class ECAPIError(Exception):
844
883
 
845
884
  class ReplayAPI:
846
885
  def cache_map_profiles(self, payload: ReplayAPICacheMapProfilesBody, **kwargs: Any) -> Any: ...
886
+ def create_full_data_job(self, payload: ReplayAPICreateFullDataJobBody, **kwargs: Any) -> Any: ...
847
887
  def create_visualization_data_job(self, recordId: Union[int, float], payload: ReplayAPICreateVisualizationDataJobBody, **kwargs: Any) -> Any: ...
888
+ def download_full_data_record(self, jobId: str, recordId: Union[int, float], **kwargs: Any) -> Any: ...
889
+ def get_full_data(self, jobId: str, **kwargs: Any) -> Any: ...
890
+ def get_full_data_cache_status(self, payload: ReplayAPIGetFullDataCacheStatusBody, **kwargs: Any) -> Any: ...
891
+ def get_full_data_job(self, jobId: str, **kwargs: Any) -> Any: ...
892
+ def get_map_block_index(self, query: ReplayAPIGetMapBlockIndexQuery, **kwargs: Any) -> Any: ...
848
893
  def get_map_profile(self, query: ReplayAPIGetMapProfileQuery, **kwargs: Any) -> Any: ...
849
894
  def get_replay_record(self, recordId: Union[int, float], **kwargs: Any) -> Any: ...
850
895
  def get_visualization_blocks_layer(self, jobId: str, **kwargs: Any) -> Any: ...
@@ -906,6 +951,7 @@ class AdminPlayerDataAPI:
906
951
  class AdminPlayerMerchandiseAPI:
907
952
  def create(self, ecid: str, payload: AdminPlayerMerchandiseAPICreateBody, **kwargs: Any) -> Any: ...
908
953
  def delete_one(self, ecid: str, category: str, itemId: str, **kwargs: Any) -> Any: ...
954
+ def find_owners(self, query: AdminPlayerMerchandiseAPIFindOwnersQuery, **kwargs: Any) -> Any: ...
909
955
  def list(self, ecid: str, query: Optional[AdminPlayerMerchandiseAPIListQuery] = ..., **kwargs: Any) -> Any: ...
910
956
  def update(self, ecid: str, category: str, itemId: str, payload: AdminPlayerMerchandiseAPIUpdateBody, **kwargs: Any) -> Any: ...
911
957
 
@@ -992,6 +1038,7 @@ class PlayerAPI:
992
1038
  def get_last_played(self, ecid: str, query: Optional[PlayerAPIGetLastPlayedQuery] = ..., **kwargs: Any) -> Any: ...
993
1039
  def get_online_duration(self, ecid: str, **kwargs: Any) -> Any: ...
994
1040
  def get_skin(self, ecid: str, **kwargs: Any) -> Any: ...
1041
+ def get_skin_geometry_data(self, ecid: str, **kwargs: Any) -> Any: ...
995
1042
  def get_stage_record(self, ecid: str, query: PlayerAPIGetStageRecordQuery, **kwargs: Any) -> Any: ...
996
1043
  def get_wallet(self, ecid: str, **kwargs: Any) -> Any: ...
997
1044
  def get_wallet_lots(self, ecid: str, query: Optional[PlayerAPIGetWalletLotsQuery] = ..., **kwargs: Any) -> Any: ...
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ecapi-sdk
3
- Version: 3.2.8
3
+ Version: 3.2.9
4
4
  Summary: ECAPI SDK for Python
5
5
  Author: EaseCation
6
6
  License: MIT
File without changes
File without changes