ecapi-sdk 3.2.8__tar.gz → 3.3.0__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.3.0
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.3.0"
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)
@@ -332,7 +356,6 @@ class AdminAPI(_BaseApi):
332
356
  self.account = AdminAccountAPI(http)
333
357
  self.leaderboard = AdminLeaderboardAPI(http)
334
358
  self.mail = AdminMailAPI(http)
335
- self.netease_binding = AdminNeteaseBindingAPI(http)
336
359
  self.operation_log = AdminOperationLogAPI(http)
337
360
  self.overwatch_case = AdminOverwatchCaseAPI(http)
338
361
  self.permission = AdminPermissionAPI(http)
@@ -340,6 +363,7 @@ class AdminAPI(_BaseApi):
340
363
  self.player_merchandise = AdminPlayerMerchandiseAPI(http)
341
364
  self.player_task = AdminPlayerTaskAPI(http)
342
365
  self.punishment = AdminPunishmentAPI(http)
366
+ self.source_account_binding = AdminSourceAccountBindingAPI(http)
343
367
  self.vote_reward_mail = AdminVoteRewardMailAPI(http)
344
368
 
345
369
  class AdminAccountAPI(_BaseApi):
@@ -365,23 +389,6 @@ class AdminMailAPI(_BaseApi):
365
389
  """发送邮件"""
366
390
  return self._post(f"/admin/mails", payload, **kwargs)
367
391
 
368
- class AdminNeteaseBindingAPI(_BaseApi):
369
- def bind_account_player(self, xuid: str, payload: Mapping[str, Any], **kwargs: Any) -> Any:
370
- """绑定或改绑网易账号到玩家"""
371
- return self._put(f"/admin/netease-accounts/{quote(str(xuid), safe='')}/player", payload, **kwargs)
372
-
373
- def reset_account_player(self, xuid: str, **kwargs: Any) -> Any:
374
- """解绑网易账号当前玩家"""
375
- return self._delete(f"/admin/netease-accounts/{quote(str(xuid), safe='')}/player", None, **kwargs)
376
-
377
- def reset_player_account(self, ecid: str, xuid: str, **kwargs: Any) -> Any:
378
- """解绑玩家名下单个网易账号"""
379
- return self._delete(f"/admin/players/{quote(str(ecid), safe='')}/netease-accounts/{quote(str(xuid), safe='')}", None, **kwargs)
380
-
381
- def reset_player_accounts(self, ecid: str, **kwargs: Any) -> Any:
382
- """解绑玩家名下全部网易账号"""
383
- return self._delete(f"/admin/players/{quote(str(ecid), safe='')}/netease-accounts", None, **kwargs)
384
-
385
392
  class AdminOperationLogAPI(_BaseApi):
386
393
  def get_statistics(self, query: Optional[QueryParams] = None, **kwargs: Any) -> Any:
387
394
  """查询操作日志统计"""
@@ -431,6 +438,10 @@ class AdminPlayerMerchandiseAPI(_BaseApi):
431
438
  """删除玩家道具"""
432
439
  return self._delete(f"/admin/players/{quote(str(ecid), safe='')}/merchandise/{quote(str(category), safe='')}/{quote(str(itemId), safe='')}", None, **kwargs)
433
440
 
441
+ def find_owners(self, query: Optional[QueryParams] = None, **kwargs: Any) -> Any:
442
+ """按道具反查玩家 ECID"""
443
+ return self._get(f"/admin/merchandise/owners", query, **kwargs)
444
+
434
445
  def list(self, ecid: str, query: Optional[QueryParams] = None, **kwargs: Any) -> Any:
435
446
  """查询玩家商品道具"""
436
447
  return self._get(f"/admin/players/{quote(str(ecid), safe='')}/merchandise", query, **kwargs)
@@ -477,6 +488,23 @@ class AdminPunishmentAPI(_BaseApi):
477
488
  """解除处罚"""
478
489
  return self._delete(f"/admin/players/{quote(str(ecid), safe='')}/punishments/{quote(str(type), safe='')}", query, **kwargs)
479
490
 
491
+ class AdminSourceAccountBindingAPI(_BaseApi):
492
+ def bind_account_player(self, xuid: str, payload: Mapping[str, Any], **kwargs: Any) -> Any:
493
+ """绑定或改绑来源账号到玩家"""
494
+ return self._put(f"/admin/source-accounts/{quote(str(xuid), safe='')}/player", payload, **kwargs)
495
+
496
+ def reset_account_player(self, xuid: str, **kwargs: Any) -> Any:
497
+ """解绑来源账号当前玩家"""
498
+ return self._delete(f"/admin/source-accounts/{quote(str(xuid), safe='')}/player", None, **kwargs)
499
+
500
+ def reset_player_account(self, ecid: str, xuid: str, **kwargs: Any) -> Any:
501
+ """解绑玩家名下单个来源账号"""
502
+ return self._delete(f"/admin/players/{quote(str(ecid), safe='')}/source-accounts/{quote(str(xuid), safe='')}", None, **kwargs)
503
+
504
+ def reset_player_accounts(self, ecid: str, **kwargs: Any) -> Any:
505
+ """解绑玩家名下全部来源账号"""
506
+ return self._delete(f"/admin/players/{quote(str(ecid), safe='')}/source-accounts", None, **kwargs)
507
+
480
508
  class AdminVoteRewardMailAPI(_BaseApi):
481
509
  def create(self, payload: Mapping[str, Any], **kwargs: Any) -> Any:
482
510
  """创建投票奖励邮件"""
@@ -640,9 +668,9 @@ class PlayerAPI(_BaseApi):
640
668
  super().__init__(http)
641
669
  self.entitlement = PlayerEntitlementAPI(http)
642
670
  self.leaderboard = PlayerLeaderboardAPI(http)
643
- self.netease = PlayerNeteaseAPI(http)
644
671
  self.rank_score = PlayerRankScoreAPI(http)
645
672
  self.score = PlayerScoreAPI(http)
673
+ self.source_account = PlayerSourceAccountAPI(http)
646
674
  self.status = PlayerStatusAPI(http)
647
675
  self.year_summary = PlayerYearSummaryAPI(http)
648
676
 
@@ -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)
@@ -704,19 +736,6 @@ class PlayerLeaderboardAPI(_BaseApi):
704
736
  """批量查询排行榜数据"""
705
737
  return self._get(f"/leaderboards/scores", query, **kwargs)
706
738
 
707
- class PlayerNeteaseAPI(_BaseApi):
708
- def create_nickname_query(self, payload: Mapping[str, Any], **kwargs: Any) -> Any:
709
- """批量获取玩家展示名"""
710
- return self._post(f"/netease-nickname-queries", payload, **kwargs)
711
-
712
- def get_account_player(self, xuid: str, **kwargs: Any) -> Any:
713
- """查询网易账号当前绑定的玩家"""
714
- return self._get(f"/netease-accounts/{quote(str(xuid), safe='')}/player", None, **kwargs)
715
-
716
- def list_bindings(self, ecid: str, **kwargs: Any) -> Any:
717
- """查询玩家绑定的网易账号"""
718
- return self._get(f"/players/{quote(str(ecid), safe='')}/netease-accounts", None, **kwargs)
719
-
720
739
  class PlayerRankScoreAPI(_BaseApi):
721
740
  def get_history(self, ecid: str, query: Optional[QueryParams] = None, **kwargs: Any) -> Any:
722
741
  """查询玩家历史赛季段位数据"""
@@ -747,6 +766,19 @@ class PlayerScoreAPI(_BaseApi):
747
766
  """获取玩家胜率统计"""
748
767
  return self._get(f"/players/{quote(str(ecid), safe='')}/scores/win-rate", query, **kwargs)
749
768
 
769
+ class PlayerSourceAccountAPI(_BaseApi):
770
+ def create_display_name_query(self, payload: Mapping[str, Any], **kwargs: Any) -> Any:
771
+ """批量获取账号展示名"""
772
+ return self._post(f"/account-display-name-queries", payload, **kwargs)
773
+
774
+ def get_account_player(self, xuid: str, **kwargs: Any) -> Any:
775
+ """查询来源账号当前绑定的玩家"""
776
+ return self._get(f"/source-accounts/{quote(str(xuid), safe='')}/player", None, **kwargs)
777
+
778
+ def list_bindings(self, ecid: str, **kwargs: Any) -> Any:
779
+ """查询玩家绑定的来源账号"""
780
+ return self._get(f"/players/{quote(str(ecid), safe='')}/source-accounts", None, **kwargs)
781
+
750
782
  class PlayerStatusAPI(_BaseApi):
751
783
  def get(self, query: Optional[QueryParams] = None, **kwargs: Any) -> Any:
752
784
  """查询玩家服内状态"""
@@ -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
@@ -62,12 +92,6 @@ class AdminMailAPISendBodyRequired(TypedDict):
62
92
  class AdminMailAPISendBody(AdminMailAPISendBodyRequired, total=False):
63
93
  gift: Mapping[str, Any]
64
94
 
65
- class AdminNeteaseBindingAPIBindAccountPlayerBodyRequired(TypedDict):
66
- ecid: str
67
-
68
- class AdminNeteaseBindingAPIBindAccountPlayerBody(AdminNeteaseBindingAPIBindAccountPlayerBodyRequired, total=False):
69
- pass
70
-
71
95
  class AdminOperationLogAPIListQuery(TypedDict, total=False):
72
96
  startTime: QueryValue
73
97
  endTime: QueryValue
@@ -119,6 +143,15 @@ class AdminPlayerDataAPISetRankLevelBodyRequired(TypedDict):
119
143
  class AdminPlayerDataAPISetRankLevelBody(AdminPlayerDataAPISetRankLevelBodyRequired, total=False):
120
144
  pass
121
145
 
146
+ class AdminPlayerMerchandiseAPIFindOwnersQueryRequired(TypedDict):
147
+ category: QueryValue
148
+ itemId: QueryValue
149
+
150
+ class AdminPlayerMerchandiseAPIFindOwnersQuery(AdminPlayerMerchandiseAPIFindOwnersQueryRequired, total=False):
151
+ data: QueryValue
152
+ current: QueryValue
153
+ pageSize: QueryValue
154
+
122
155
  class AdminPlayerMerchandiseAPIListQuery(TypedDict, total=False):
123
156
  category: QueryValue
124
157
  itemId: QueryValue
@@ -190,11 +223,17 @@ class AdminPunishmentAPIListQuery(TypedDict, total=False):
190
223
  current: QueryValue
191
224
  pageSize: QueryValue
192
225
 
226
+ class AdminSourceAccountBindingAPIBindAccountPlayerBodyRequired(TypedDict):
227
+ ecid: str
228
+
229
+ class AdminSourceAccountBindingAPIBindAccountPlayerBody(AdminSourceAccountBindingAPIBindAccountPlayerBodyRequired, total=False):
230
+ pass
231
+
193
232
  class AdminVoteRewardMailAPICreateBodyRequired(TypedDict):
194
233
  players: Sequence[Any]
195
234
 
196
235
  class AdminVoteRewardMailAPICreateBody(AdminVoteRewardMailAPICreateBodyRequired, total=False):
197
- enableNeteaseLookup: bool
236
+ enableDisplayNameLookup: bool
198
237
 
199
238
  class AuditAPIQueryAccessLogsQuery(TypedDict, total=False):
200
239
  current: QueryValue
@@ -498,12 +537,6 @@ class PlayerLeaderboardAPIGetRankQueryRequired(TypedDict):
498
537
  class PlayerLeaderboardAPIGetRankQuery(PlayerLeaderboardAPIGetRankQueryRequired, total=False):
499
538
  sortOrder: QueryValue
500
539
 
501
- class PlayerNeteaseAPICreateNicknameQueryBodyRequired(TypedDict):
502
- ecids: Sequence[Any]
503
-
504
- class PlayerNeteaseAPICreateNicknameQueryBody(PlayerNeteaseAPICreateNicknameQueryBodyRequired, total=False):
505
- pass
506
-
507
540
  class PlayerRankScoreAPIGetScoreQuery(TypedDict, total=False):
508
541
  game: QueryValue
509
542
  season: QueryValue
@@ -534,6 +567,12 @@ class PlayerScoreAPIGetWinRateQuery(TypedDict, total=False):
534
567
  startTime: QueryValue
535
568
  endTime: QueryValue
536
569
 
570
+ class PlayerSourceAccountAPICreateDisplayNameQueryBodyRequired(TypedDict):
571
+ ecids: Sequence[Any]
572
+
573
+ class PlayerSourceAccountAPICreateDisplayNameQueryBody(PlayerSourceAccountAPICreateDisplayNameQueryBodyRequired, total=False):
574
+ pass
575
+
537
576
  class PlayerStatusAPIGetQueryRequired(TypedDict):
538
577
  displayName: QueryValue
539
578
 
@@ -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: ...
@@ -859,7 +904,6 @@ class AdminAPI:
859
904
  account: AdminAccountAPI
860
905
  leaderboard: AdminLeaderboardAPI
861
906
  mail: AdminMailAPI
862
- netease_binding: AdminNeteaseBindingAPI
863
907
  operation_log: AdminOperationLogAPI
864
908
  overwatch_case: AdminOverwatchCaseAPI
865
909
  permission: AdminPermissionAPI
@@ -867,6 +911,7 @@ class AdminAPI:
867
911
  player_merchandise: AdminPlayerMerchandiseAPI
868
912
  player_task: AdminPlayerTaskAPI
869
913
  punishment: AdminPunishmentAPI
914
+ source_account_binding: AdminSourceAccountBindingAPI
870
915
  vote_reward_mail: AdminVoteRewardMailAPI
871
916
 
872
917
  class AdminAccountAPI:
@@ -880,12 +925,6 @@ class AdminMailAPI:
880
925
  def delete_one(self, mailId: Union[int, float], **kwargs: Any) -> Any: ...
881
926
  def send(self, payload: AdminMailAPISendBody, **kwargs: Any) -> Any: ...
882
927
 
883
- class AdminNeteaseBindingAPI:
884
- def bind_account_player(self, xuid: str, payload: AdminNeteaseBindingAPIBindAccountPlayerBody, **kwargs: Any) -> Any: ...
885
- def reset_account_player(self, xuid: str, **kwargs: Any) -> Any: ...
886
- def reset_player_account(self, ecid: str, xuid: str, **kwargs: Any) -> Any: ...
887
- def reset_player_accounts(self, ecid: str, **kwargs: Any) -> Any: ...
888
-
889
928
  class AdminOperationLogAPI:
890
929
  def get_statistics(self, query: AdminOperationLogAPIGetStatisticsQuery, **kwargs: Any) -> Any: ...
891
930
  def list(self, query: Optional[AdminOperationLogAPIListQuery] = ..., **kwargs: Any) -> Any: ...
@@ -906,6 +945,7 @@ class AdminPlayerDataAPI:
906
945
  class AdminPlayerMerchandiseAPI:
907
946
  def create(self, ecid: str, payload: AdminPlayerMerchandiseAPICreateBody, **kwargs: Any) -> Any: ...
908
947
  def delete_one(self, ecid: str, category: str, itemId: str, **kwargs: Any) -> Any: ...
948
+ def find_owners(self, query: AdminPlayerMerchandiseAPIFindOwnersQuery, **kwargs: Any) -> Any: ...
909
949
  def list(self, ecid: str, query: Optional[AdminPlayerMerchandiseAPIListQuery] = ..., **kwargs: Any) -> Any: ...
910
950
  def update(self, ecid: str, category: str, itemId: str, payload: AdminPlayerMerchandiseAPIUpdateBody, **kwargs: Any) -> Any: ...
911
951
 
@@ -922,6 +962,12 @@ class AdminPunishmentAPI:
922
962
  def list_prism_device_ban_logs(self, query: Optional[AdminPunishmentAPIListPrismDeviceBanLogsQuery] = ..., **kwargs: Any) -> Any: ...
923
963
  def remove(self, ecid: str, type: str, query: Optional[AdminPunishmentAPIRemoveQuery] = ..., **kwargs: Any) -> Any: ...
924
964
 
965
+ class AdminSourceAccountBindingAPI:
966
+ def bind_account_player(self, xuid: str, payload: AdminSourceAccountBindingAPIBindAccountPlayerBody, **kwargs: Any) -> Any: ...
967
+ def reset_account_player(self, xuid: str, **kwargs: Any) -> Any: ...
968
+ def reset_player_account(self, ecid: str, xuid: str, **kwargs: Any) -> Any: ...
969
+ def reset_player_accounts(self, ecid: str, **kwargs: Any) -> Any: ...
970
+
925
971
  class AdminVoteRewardMailAPI:
926
972
  def create(self, payload: AdminVoteRewardMailAPICreateBody, **kwargs: Any) -> Any: ...
927
973
 
@@ -980,9 +1026,9 @@ class LogOrderExchangeAPI:
980
1026
  class PlayerAPI:
981
1027
  entitlement: PlayerEntitlementAPI
982
1028
  leaderboard: PlayerLeaderboardAPI
983
- netease: PlayerNeteaseAPI
984
1029
  rank_score: PlayerRankScoreAPI
985
1030
  score: PlayerScoreAPI
1031
+ source_account: PlayerSourceAccountAPI
986
1032
  status: PlayerStatusAPI
987
1033
  year_summary: PlayerYearSummaryAPI
988
1034
  def get_data(self, ecid: str, **kwargs: Any) -> Any: ...
@@ -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: ...
@@ -1004,11 +1051,6 @@ class PlayerLeaderboardAPI:
1004
1051
  def get_rank(self, ecid: str, query: PlayerLeaderboardAPIGetRankQuery, **kwargs: Any) -> Any: ...
1005
1052
  def get_scores(self, query: Optional[PlayerLeaderboardAPIGetScoresQuery] = ..., **kwargs: Any) -> Any: ...
1006
1053
 
1007
- class PlayerNeteaseAPI:
1008
- def create_nickname_query(self, payload: PlayerNeteaseAPICreateNicknameQueryBody, **kwargs: Any) -> Any: ...
1009
- def get_account_player(self, xuid: str, **kwargs: Any) -> Any: ...
1010
- def list_bindings(self, ecid: str, **kwargs: Any) -> Any: ...
1011
-
1012
1054
  class PlayerRankScoreAPI:
1013
1055
  def get_history(self, ecid: str, query: Optional[PlayerRankScoreAPIGetHistoryQuery] = ..., **kwargs: Any) -> Any: ...
1014
1056
  def get_periods(self, ecid: str, query: Optional[PlayerRankScoreAPIGetPeriodsQuery] = ..., **kwargs: Any) -> Any: ...
@@ -1020,6 +1062,11 @@ class PlayerScoreAPI:
1020
1062
  def get_stages(self, ecid: str, query: Optional[PlayerScoreAPIGetStagesQuery] = ..., **kwargs: Any) -> Any: ...
1021
1063
  def get_win_rate(self, ecid: str, query: Optional[PlayerScoreAPIGetWinRateQuery] = ..., **kwargs: Any) -> Any: ...
1022
1064
 
1065
+ class PlayerSourceAccountAPI:
1066
+ def create_display_name_query(self, payload: PlayerSourceAccountAPICreateDisplayNameQueryBody, **kwargs: Any) -> Any: ...
1067
+ def get_account_player(self, xuid: str, **kwargs: Any) -> Any: ...
1068
+ def list_bindings(self, ecid: str, **kwargs: Any) -> Any: ...
1069
+
1023
1070
  class PlayerStatusAPI:
1024
1071
  def get(self, query: PlayerStatusAPIGetQuery, **kwargs: Any) -> Any: ...
1025
1072
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ecapi-sdk
3
- Version: 3.2.8
3
+ Version: 3.3.0
4
4
  Summary: ECAPI SDK for Python
5
5
  Author: EaseCation
6
6
  License: MIT
File without changes
File without changes