一个用于与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
设置为可以引用的属性。在
有关身份验证的任何其他问题,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)
待办事项
- []分页支持
- []其他身份验证方法在上游可用时
- []单元和集成测试
- []修复令牌刷新方法
- 项目
标签: