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需要设置框架。可设置大小(false)以重新绘制()   java我对PDF文件感到困惑   为什么是太阳。jvm。热点。调试器。DebuggerException:无法打开二进制文件`?   设置结果为textview时出现java空指针异常   我应该使用什么同步原语在Java中实现事件驱动程序框架?   java为什么WindowClosing处理程序在退出程序之前不执行后台任务?   如何将“20170712T18:43:04.000Z”转换为安卓或java中的相对时间?   Java,获取按键的时间长度,currentTimeMillies()始终为24   maven构建的java可执行Jar找不到logback。xml   java在其外部的函数中使用for循环中的值   java如何以表格格式将不同长度的数据对齐   java Play 2.5 WebSocket连接构建   maven而非eclipse的java强制转换问题   java如何在JFreeChart中使X轴上的值水平?   构建Java Windows应用程序以访问在线MySQL数据库需要什么   java添加构造函数会出错吗?这没有道理,请帮忙,编程问题   java在一个jframe中的两个JPanel中使用两个绘制方法   java数学或逻辑问题   java如何复制Androids库存摄像头方向更改