用于与AniDB API通信的python接口

zenchi的Python项目详细描述


曾池

zenchi是一个python3应用程序,它与AniDB UDP API通信。它提供了一个将原始响应字符串转换为python对象的接口。它本身做的很少,它的唯一目的是解析数据以供其他应用程序使用。在

目前只支持Data命令。在

安装

pip install -U zenchi

使用

相当简单:

>>>importzenchi>>>zenchi.create_socket(anidb_server='api.anidb.net',anidb_port=9000)<socket.socket...>>>>zenchi.ping(nat=1)({'port':25065},300)

每个命令响应都是一个元组(数据、代码)。data是包含已解析响应的变量键的字典,而code是响应代码。在

环境变量

ZENCHI_CLIENTNAME和{}应该由您自己在AniDB站点上生成的密钥替换。(不能保证这些值在您阅读时是有效的!)在

^{pr2}$

如果设置了这些值,则会自动创建套接字,并且会更简单。您可以完全跳过对create_socket的调用,只调用以下命令:

>>>importzenchi>>>zenchi.auth()({'session':'ELahj'},200)>>>zenchi.character(1)(...,235)

动画面具

ANIME命令接收一个mask作为参数来过滤动画数据。zenchi提供了一种简单的方法来使用zenchi.mappings.anime.mask模块创建这些掩码。在

>>>importzenchi.mappings.anime.maskasamask>>>zenchi.anime(amask.aid|amask.romaji_name|amask.english_name|amask.short_name|amask.year,aid=3433)({'aid':3433,'english_name':'Mushi-Shi','romaji_name':'Mushishi','short_name':['Mushi'],'updated_at':datetime.datetime(2019,11,10,19,55,18,1000),'year':'2005-2006'},230)

缓存

zenchi使用一个非常基本的可选MongoDB数据库作为缓存,名为anidb_cache。它使用环境变量MONGODB_URI检查连接字符串。如果未设置变量,则会发出警告,并忽略所有缓存使用情况(根据AniDB规范,高度未经警告)。在

任何使用缓存的操作都具有参数use_cache,该参数默认为True。您可以将其设置为False,以跳过该特定命令的缓存(例如,当您想要更新缓存的数据时)。所有缓存的数据还返回一个updated_at键(参见上面的示例),这是数据库中最后一次更新数据。在

如果不想使用anidb_cacheMONGODB_URI,请在向API发送请求之前使用适当的值手动调用zenchi.cache.setup。在

特点

向zenchi添加新命令实际上相当简单,我只是编写了我个人打算使用的命令。 请随时发送个人简历或在问题中提出要求。在

许可证

这个项目得到麻省理工学院的许可。在

对于数据收集和使用,请确保读取AniDB Policies

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

推荐PyPI第三方库


热门话题
java接口中的每个方法都是抽象的,但在抽象类中,我们也只能使用抽象方法   初始化Java中声明的、未初始化的变量会发生什么情况?   java BouncyCastle openPGP将字节[]数组加密为csv文件   在Java中将类A(和所有子类)映射到类B的实例的字典   RSA公钥编码,在Java和Android中,代码相同,结果不同   java在安卓中实现数字检测语音识别   java取消选择复选框   java如何在其他配置中重用Maven配置XML片段   java有没有一种有效的方法来检查HashMap是否包含映射到相同值的键?   spring处理程序调度失败;嵌套的例外是java。lang.NoClassDefFoundError:org/apache/http/client/HttpClient   带有ehcache的java多层缓存   java如何访问chromium(或任何其他浏览器)cookie   java通过将两个集合与spring data mongodb data中的条件合并来获取计数   安卓中R.java的语法错误