Royaleapi的同步Python3.6+包装器。
clashroyaleapi的Python项目详细描述
Clashroyaleapi v0.2.1
用于RoyaleAPI的syncpython 3.6+包装器。(在制品)
此包装器的代码样式的灵感来自 python-telegram-bot, Telethon 以及Jeff的crpy。 这个包装器试图提供一个替代方案,它使用数据包到现有的Python包装器用于RoalAleAPI。
建议您在使用此包装之前阅读RoyaleAPI's documentation 因为要编写这个包装器的文档。你也可以参考 short examples下面。
此内容不属于、背书、赞助, 或经超级电池特别批准,超级电池不负责。 有关详细信息,请参见Supercell’s Fan Content Policy。
安装
这个项目在PyPI上。
pip install clashroyaleapi
获取开发人员密钥
跟随these instructions 以获取开发人员密钥。
当前支持的方法
具有别名的方法表示可以向它们传递多个标记。
client.get_player()# alias: client.get_players()client.get_player_chests()# alias: client.get_players_chests()client.get_player_battles()# alias: client.get_players_battles()client.get_clan()# alias: client.get_clans()client.get_clan_battles()client.get_clan_war()client.get_clan_war_log()client.get_clan_tracking()# alias: client.get_clans_tracking()client.track_clan()# alias: client.track_clans()client.search_clans()client.get_tournament()# alias: client.get_tournaments()client.get_known_tournaments()client.search_tournaments()client.get_top_players()client.get_top_clans()client.get_top_war_clans()client.get_version()client.get_health()client.get_status()client.get_endpoints()
当向接受多个标记的方法传递参数时,可以使用列表、元组、dict、set和生成器。 以下所有方法调用都有效并返回相同的结果。
p=[tag1,tag2,tag3]client.get_players(p)client.get_players(*p)client.get_players(tuple(p))client.get_players(set(p))client.get_players(dict.fromkeys(p))client.get_players(tagfortaginp)# If you want to do this somehow
使用包装器的简短示例
玩家/部族/锦标赛标签将在请求API之前被“更正”和验证。
例1:with
语句
importroyaleapiwithroyaleapi.RoyaleAPIClient("YOUR_DEVELOPER_KEY")asclient:p=client.get_player("2RQJ0OYYC",timeout=100)print(p.name,p.stats.favorite_card.name,p.deck[0].name,sep=", ")c1,c2=client.get_clans("c9c8pcp","#8LYRRV2")print(c1.badge==c2.badge,c1.location==c2.location,sep=", ")print([(c.name,c.members[0].name,c.members[0].trophies)forcin(c1,c2)])# My results:# Trainer Jono, Golem, The Log# False, True# [('新香港部落123', '花果山劉德華', 5073), ('香港部落·二部', 'Gnuelnam', 4479)]
(第二族不再存在,尝试此操作会出错)
示例2:使用缓存数据
importtimefromroyaleapiimportRoyaleAPIClientclient=RoyaleAPIClient("YOUR_DEVELOPER_KEY",use_cache=True)player_tag="9YJ2RR8G"t1=time.time()p1=client.get_player(player_tag)t2=time.time()p2=client.get_player(player_tag)t3=time.time()p3=client.get_player(player_tag,use_cache=False)t4=time.time()print(t2-t1,t3-t2,t4-t3,p1==p2==p3,sep=", ")# My results# 2.3867766857147217, 0.28074216842651367, 1.4506447315216064, True# The first call takes the longest time since the data is not cached locally or on RoyaleAPI's server.# The second call takes the shortest time since the data is cached locally.# The third call takes less time than the first call since the data is cached on RoyaleAPI's server.