Source code for Pymoe.manga.get.anilist

import requests
import ujson
from ....errors import serializationFailed, serverError
from ....anime.get.anilist import character as cref
from ....anime.get.anilist import staff as sref

settings = {
    'header': {
        'Content-Type': 'application/json',
        'User-Agent': 'Pymoe (github.com/ccubed/PyMoe)',
        'Accept': 'application/json'
    },
    'apiurl': 'https://graphql.anilist.co'
}

[docs]def manga(item_id: int): """ The function to retrieve a manga's details. I really couldn't think of another name for this. """ query_string = """\ query( $id: Int ) { Media( id: $id, type: MANGA ) { idMal title { romaji english } status description startDate { year month day } endDate { year month day } coverImage { extraLarge large medium color } chapters volumes genres synonyms averageScore isAdult siteUrl characters { nodes { id name { first last } image { large medium } description gender age siteUrl } } } } """ json_params = { 'query': query_string, 'variables': { 'id': item_id } } r = requests.post( settings['apiurl'], headers = settings['header'], json = json_params ) try: jsd = ujson.loads(r.text) except ValueError: raise serializationFailed(r.text, r.status_code) else: if 'errors' in jsd: raise serverError(r.text, r.status_code) else: return jsd
[docs]def character(item_id: int): """ Anilist does not separate characters by anime/manga. This is simply a reference to the character function that already exists. """ return cref(item_id)
[docs]def staff(item_id: int): """ Anilist does not separate staff by anime/manga. This is simply a reference to the staff function that already exists. """ return sref(item_id)