var query, variables = { type: "ANIME", page: 1, perPage: 50 }, request; var url = 'https://graphql.anilist.co', options = { method: 'POST', headers: { 'Content-Type': 'application/json', 'Accept': 'application/json' }, body: JSON.stringify({ query: query, variables: variables }) }; function search() { let search = document.querySelector("#search").value if (search == "") { alRequest() } else { alRequest(search) } } function alRequest(a) { if (a == undefined) { variables.sort = "TRENDING_DESC" delete variables.search query = ` query ($page: Int, $perPage: Int, $sort: [MediaSort], $type: MediaType) { Page (page: $page, perPage: $perPage) { pageInfo { total currentPage lastPage hasNextPage perPage } media(type: $type, sort: $sort) { id title { romaji english native } description( asHtml: true ) season seasonYear format status episodes duration averageScore genres coverImage { large } bannerImage } } } ` } else { variables.search = a delete variables.sort query = ` query ($page: Int, $perPage: Int, $search: String, $type: MediaType) { Page (page: $page, perPage: $perPage) { pageInfo { total currentPage lastPage hasNextPage perPage } media (type: $type, search: $search) { id title { romaji english native } description( asHtml: true ) season seasonYear format status episodes duration averageScore genres coverImage { large } bannerImage } } } ` } options.body = JSON.stringify({ query: query, variables: variables }) fetch(url, options).then((handleResponse)) .then(handleData) .catch((error) => console.error(error)); function handleResponse(response) { return response.json().then(function (json) { return response.ok ? json : Promise.reject(json); }); } } function handleData(data) { request = data console.log(request); let frag = document.createDocumentFragment(), hasBegun = true try { data.data.Page.media.forEach((media, index) => { let template = document.createElement("div") template.classList.add("card", "bg-dark") template.innerHTML = `
${((!!media.format ? (media.format == "TV" ? media.format + " Show" : media.format) + " • " : "") + (!!media.episodes ? media.episodes + " Episodes • " : (!!media.duration ? media.duration + " Minutes • " : "")) + (!!media.status ? media.status.toLowerCase() : ""))}
${media.description}