Royaleapi的同步Python3.6+包装器。

clashroyaleapi的Python项目详细描述


Clashroyaleapi v0.2.1

用于RoyaleAPI的syncpython 3.6+包装器。(在制品)

此包装器的代码样式的灵感来自 python-telegram-botTelethon 以及Jeffcrpy。 这个包装器试图提供一个替代方案,它使用数据包到现有的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.

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
在Java中使用Kotlin值类   在Hadoop中表示大文本块作为键的java   java安卓工作室;布局设计视图;   字典Java确定字符串是否以映射中的键开头   JavaG1:混合gc和完全gc之间有什么区别?   java Camunda升级组织。阿帕奇。平民语言错误   java Scanner类具有NextLine无限循环   安卓 GCM Java服务器:发送带有重音字符的消息   java我正在构建一个兴趣计算应用程序,我的项目构建良好,有1个警告,但它不会在我的设备上打开   java在Tilera TileGX上构建OpenJDK 8   GUI中的java惰性初始化与急切初始化   java JodaTime四舍五入到最近的一刻钟   java如何限制菜单。SpringRoo中的jspx可以避免对其他用户的实体执行CRUD操作   java我应该将缓冲流链接到输入流,还是在将声音库作为嵌入式资源加载时使用URL类?