Skip to main content

Python Async Wrapper for Shikimori Api

Project description

Shikimori API Wrapper

A Python library that provides a simple and easy-to-use wrapper for accessing the Shikimori API. The library supports all endpoints and types of the Shikimori API and provides OAuth2 authorization functionality using an access token.

Build Status License Coverage Status Documentation Status

Features

  • Support for all Shikimori API endpoints: This library supports all endpoints (both v1 and v2) of the Shikimori API, including anime, manga, characters, users, and more.
  • Authorization support: The library provides support for authorization using an access token.
  • Strong typing: The library has type hints for all methods, making it easy to integrate with other projects.
  • Easy-to-use API: The API wrapper is designed to be simple and easy to use, with intuitive methods and parameters that make it easy to get started quickly.

Documentation

See the shiki.py API documentation .

See the official documentation for the Shikimori API.

Installation

pip

$ pip install shiki.py

poetry

$ poetry add shiki.py

Usage

To use the library, simply import it into your project and create an instance of a Shikimori. You can then use the various methods provided by the Shikimori to access the Shikimori API.

import asyncio

from shikimori.client import Shikimori

client = Shikimori(user_agent="USER_AGENT")

async def main():
    return await client.anime.list()

if __name__ == "__main__":
    asyncio.run(main())

Authorization

For more additional information see the Official Shikimori OAuth2 Guide.

  1. Register your Shikimori Application: This will provide you with a client_id and client_secret that you will need to use OAuth2.

  2. Redirect user to the Shikimori authorization endpoint: This endpoint will prompt the user to grant your application access to their resources. After the user grants access, Shikimori will redirect them back to your application with an authorization code.

https://shikimori.one/oauth/authorize?client_id=CLIENT_ID&redirect_uri=REDIRECT_URI&response_type=code&scope=
  1. Get an access token: Your application will need to exchange an authorization code for an AccessToken. Shikimori will respond with an access token that your application can use to access the restricted resources/endpoints.
import asyncio

from shikimori.client import Shikimori

client = Shikimori(user_agent="USER_AGENT")

async def main():
    return await client.auth.get_access_token("CODE")

if __name__ == "__main__":
    asyncio.run(main())
  1. Use access token to access protected resources: Finally, your application can use the access token to access the user's protected resources. Be sure to handle any errors or expired tokens gracefully.
import asyncio

from shikimori.client import Shikimori

client = Shikimori(user_agent="USER_AGENT")


async def main():
    client.set_token("CODE")
    return await client.userRate.increment("USER_RATE_ID")


if __name__ == "__main__":
    asyncio.run(main())

5.Refresh access token: Access tokens have a limited lifespan of 1 day, so your application will need to refresh them periodically to maintain access to the user's resources. To do this use a get_access_token function with the refresh token. Shikimori will respond with a new access token and refresh token that your application can use to continue accessing the user's resources.

import asyncio

from shikimori.client import Shikimori

client = Shikimori(user_agent="USER_AGENT")


async def main():
    return await client.auth.refresh("REFRESH_TOKEN")


if __name__ == "__main__":
    asyncio.run(main())

Contribution

Contributions to this library are always welcome and highly encouraged.

License

This library is licensed under MIT. Please see LICENSE for licensing details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

shiki_py-1.1.4.tar.gz (31.6 kB view details)

Uploaded Source

Built Distribution

shiki.py-1.1.4-py3-none-any.whl (63.3 kB view details)

Uploaded Python 3

File details

Details for the file shiki_py-1.1.4.tar.gz.

File metadata

  • Download URL: shiki_py-1.1.4.tar.gz
  • Upload date:
  • Size: 31.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.19

File hashes

Hashes for shiki_py-1.1.4.tar.gz
Algorithm Hash digest
SHA256 fc09d7c558272e35e8c2e8544bd410d4ac1dababe3009338d3391358ef7f444b
MD5 ffd5e6d41603f52c18e623b680f69fb5
BLAKE2b-256 28e6f367a0058be03387a0d0d85252c18fba3803a8a0295451a9e6ffd100abe7

See more details on using hashes here.

File details

Details for the file shiki.py-1.1.4-py3-none-any.whl.

File metadata

  • Download URL: shiki.py-1.1.4-py3-none-any.whl
  • Upload date:
  • Size: 63.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.19

File hashes

Hashes for shiki.py-1.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 a2e177ad2fc6eae9f333d9db1e385054dfb68fd2cc6defc86ce3928216ed40d4
MD5 e0fee20b6f6982136a234f41fff0b367
BLAKE2b-256 2216cedc3e3fe4d338e45d105fced8244b32e60cadf9ec750ca93236e76df8f4

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page