ecapi-sdk 3.2.7__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.7
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.7"
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)
@@ -298,6 +322,14 @@ class ReplayAPI(_BaseApi):
298
322
  """获取回放记录"""
299
323
  return self._get(f"/replays/{quote(str(recordId), safe='')}", None, **kwargs)
300
324
 
325
+ def get_visualization_blocks_layer(self, jobId: str, **kwargs: Any) -> Any:
326
+ """获取动态方块变化图层"""
327
+ return self._get(f"/replay-visualization-data-jobs/{quote(str(jobId), safe='')}/layers/blocks", None, **kwargs)
328
+
329
+ def get_visualization_core_data(self, jobId: str, **kwargs: Any) -> Any:
330
+ """获取默认回放核心数据"""
331
+ return self._get(f"/replay-visualization-data-jobs/{quote(str(jobId), safe='')}/core", None, **kwargs)
332
+
301
333
  def get_visualization_data(self, jobId: str, **kwargs: Any) -> Any:
302
334
  """获取回放结构化数据"""
303
335
  return self._get(f"/replay-visualization-data-jobs/{quote(str(jobId), safe='')}/data", None, **kwargs)
@@ -306,6 +338,14 @@ class ReplayAPI(_BaseApi):
306
338
  """查询回放结构化数据任务"""
307
339
  return self._get(f"/replay-visualization-data-jobs/{quote(str(jobId), safe='')}", None, **kwargs)
308
340
 
341
+ def get_visualization_equipment_layer(self, jobId: str, **kwargs: Any) -> Any:
342
+ """获取主手武器/物品变化图层"""
343
+ return self._get(f"/replay-visualization-data-jobs/{quote(str(jobId), safe='')}/layers/equipment", None, **kwargs)
344
+
345
+ def get_visualization_high_tracks_layer(self, jobId: str, **kwargs: Any) -> Any:
346
+ """获取高精度轨迹图层"""
347
+ return self._get(f"/replay-visualization-data-jobs/{quote(str(jobId), safe='')}/layers/high-tracks", None, **kwargs)
348
+
309
349
  def list_replay_records(self, query: Optional[QueryParams] = None, **kwargs: Any) -> Any:
310
350
  """分页查询玩家回放记录"""
311
351
  return self._get(f"/replays", query, **kwargs)
@@ -415,6 +455,10 @@ class AdminPlayerMerchandiseAPI(_BaseApi):
415
455
  """删除玩家道具"""
416
456
  return self._delete(f"/admin/players/{quote(str(ecid), safe='')}/merchandise/{quote(str(category), safe='')}/{quote(str(itemId), safe='')}", None, **kwargs)
417
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
+
418
462
  def list(self, ecid: str, query: Optional[QueryParams] = None, **kwargs: Any) -> Any:
419
463
  """查询玩家商品道具"""
420
464
  return self._get(f"/admin/players/{quote(str(ecid), safe='')}/merchandise", query, **kwargs)
@@ -658,6 +702,10 @@ class PlayerAPI(_BaseApi):
658
702
  """获取玩家皮肤数据"""
659
703
  return self._get(f"/players/{quote(str(ecid), safe='')}/skin", None, response_type="bytes", **kwargs)
660
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
+
661
709
  def get_stage_record(self, ecid: str, query: Optional[QueryParams] = None, **kwargs: Any) -> Any:
662
710
  """分页查询玩家关卡记录"""
663
711
  return self._get(f"/players/{quote(str(ecid), safe='')}/stage-records", query, **kwargs)
@@ -837,6 +885,10 @@ class ServerEaseChatAPI(_BaseApi):
837
885
  """分页查询订阅"""
838
886
  return self._get(f"/easechat/subscriptions", query, **kwargs)
839
887
 
888
+ def reconnect_ws(self, **kwargs: Any) -> Any:
889
+ """手动重连 EaseChat WebSocket"""
890
+ return self._post(f"/easechat/ws/reconnect", None, **kwargs)
891
+
840
892
  def send_hlaba(self, payload: Mapping[str, Any], **kwargs: Any) -> Any:
841
893
  """发送 HLABA 消息"""
842
894
  return self._post(f"/easechat/hlaba", payload, **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,11 +883,21 @@ 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: ...
895
+ def get_visualization_blocks_layer(self, jobId: str, **kwargs: Any) -> Any: ...
896
+ def get_visualization_core_data(self, jobId: str, **kwargs: Any) -> Any: ...
850
897
  def get_visualization_data(self, jobId: str, **kwargs: Any) -> Any: ...
851
898
  def get_visualization_data_job(self, jobId: str, **kwargs: Any) -> Any: ...
899
+ def get_visualization_equipment_layer(self, jobId: str, **kwargs: Any) -> Any: ...
900
+ def get_visualization_high_tracks_layer(self, jobId: str, **kwargs: Any) -> Any: ...
852
901
  def list_replay_records(self, query: ReplayAPIListReplayRecordsQuery, **kwargs: Any) -> Any: ...
853
902
 
854
903
  class AdminAPI:
@@ -902,6 +951,7 @@ class AdminPlayerDataAPI:
902
951
  class AdminPlayerMerchandiseAPI:
903
952
  def create(self, ecid: str, payload: AdminPlayerMerchandiseAPICreateBody, **kwargs: Any) -> Any: ...
904
953
  def delete_one(self, ecid: str, category: str, itemId: str, **kwargs: Any) -> Any: ...
954
+ def find_owners(self, query: AdminPlayerMerchandiseAPIFindOwnersQuery, **kwargs: Any) -> Any: ...
905
955
  def list(self, ecid: str, query: Optional[AdminPlayerMerchandiseAPIListQuery] = ..., **kwargs: Any) -> Any: ...
906
956
  def update(self, ecid: str, category: str, itemId: str, payload: AdminPlayerMerchandiseAPIUpdateBody, **kwargs: Any) -> Any: ...
907
957
 
@@ -988,6 +1038,7 @@ class PlayerAPI:
988
1038
  def get_last_played(self, ecid: str, query: Optional[PlayerAPIGetLastPlayedQuery] = ..., **kwargs: Any) -> Any: ...
989
1039
  def get_online_duration(self, ecid: str, **kwargs: Any) -> Any: ...
990
1040
  def get_skin(self, ecid: str, **kwargs: Any) -> Any: ...
1041
+ def get_skin_geometry_data(self, ecid: str, **kwargs: Any) -> Any: ...
991
1042
  def get_stage_record(self, ecid: str, query: PlayerAPIGetStageRecordQuery, **kwargs: Any) -> Any: ...
992
1043
  def get_wallet(self, ecid: str, **kwargs: Any) -> Any: ...
993
1044
  def get_wallet_lots(self, ecid: str, query: Optional[PlayerAPIGetWalletLotsQuery] = ..., **kwargs: Any) -> Any: ...
@@ -1061,6 +1112,7 @@ class ServerEaseChatAPI:
1061
1112
  def create_subscription(self, payload: ServerEaseChatAPICreateSubscriptionBody, **kwargs: Any) -> Any: ...
1062
1113
  def delete_subscription(self, subscriptionId: Union[int, float], **kwargs: Any) -> Any: ...
1063
1114
  def list_subscriptions(self, query: Optional[ServerEaseChatAPIListSubscriptionsQuery] = ..., **kwargs: Any) -> Any: ...
1115
+ def reconnect_ws(self, **kwargs: Any) -> Any: ...
1064
1116
  def send_hlaba(self, payload: ServerEaseChatAPISendHlabaBody, **kwargs: Any) -> Any: ...
1065
1117
 
1066
1118
  class ServerGamingTagAPI:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ecapi-sdk
3
- Version: 3.2.7
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