一个用于与MyAnimeList RESTAPI接口的小型客户端库。

malclient的Python项目详细描述


MAL API客户端

第三方面向对象的python客户端库,用于MyAnimeList新发布的官方restapi。在

安装

pip3 install malclient --user

身份验证

客户端需要具有此OAuth2接口的令牌访问。虽然OAuth2非常适合将用户授权委托给第三方web应用程序,但对于简单的自动化或抓取(这个客户机的理想范围通常是朝着这个方向)的,它并不是最简单的身份验证选项。幸运的是,there is a great guide for authenticating an application and retreiving credentials for this api你可以使用这个库。请参考那个指南

一旦检索到访问令牌,您只需使用以下api进行身份验证:

importmalclientclient=malclient.Client()client.init(access_token="<your-access-token>")

如果此客户端库正在长时间运行的上下文中使用,则可能需要定期刷新访问令牌。这可以通过下面的方法完成,并将用新返回的access_token更新将来的请求头,并将新的refresh_token设置为可以引用的属性。在

^{pr2}$

有关身份验证的任何其他问题,please refer to the following guide。未来有一些更简单的认证方法的潜在计划,但目前看来这似乎是MyAnimeList认可的方法。在

快速入门示例

下面是一些示例来演示这个客户机在MAL的restapi中的一些用法。请注意,响应被序列化为python对象以直接引用到属性,但是在顶层打印对象将返回一个用于查找属性的字典。在

importmalclientclient=malclient.Client()client.init(access_token="<your-access-token>")# search anime, returns listanime=client.search_anime("cowboy",limit=20)foraniinanime:# print all attributes as dictionary for refferenceprint(ani)# print attributeprint(ani.title)# Get individual anime by IDanime=client.get_anime_details(1)print(anime.title)print(anime)# Update Myanime List based off of search resultsanime=client.search_anime("dorohedoro",limit=1)my_status={'status':'watching','score':7}status=client.update_anime_my_list_status(anime[0].id,my_status)# get my user infoprint(client.get_user_info())# get my anime list (you can get other users by name)foranimeinclient.get_user_anime_list():print(anime.title,anime.score)# Update manga list based off search resultsmanga=client.search_manga('doro')my_status={'status':'reading','score':9}client.update_manga_my_list_status(manga[0].id,my_status)

待办事项

  • []分页支持
  • []其他身份验证方法在上游可用时
  • []单元和集成测试
  • []修复令牌刷新方法

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

推荐PyPI第三方库


热门话题
java使用ObjectOutput/InputStream从自定义位置读/写   Java队列数组只打印出打印方法中for循环中的最后一个元素   java如何使用searchManager搜索和筛选listview   java ValueAnimator更改背景颜色   java什么是AOSP工具链?   序列化Java/Serializable仅覆盖已更改的对象   java Android单例类仅在第二次刷新时更新   将文本追加到JTextPane时,JTextPane的java滚动条不可见   java行为和繁忙指示器   javaspring,Thymeleaf和CSS如何给错误着色   java如何在两个测试类之间共享外部资源?   java Druid longSum度量未填充   按下按钮时,java列表不会显示(+字符串参数“流派”不存在)   java在Hibernate中如何延迟加载子记录?   java为对象提供随机统计信息   java如何使用GWT编辑器框架编辑多值字段?