153 lines
5.1 KiB
JavaScript
153 lines
5.1 KiB
JavaScript
const fetch = require('node-fetch'); // Либа для запросов
|
||
|
||
exports.getProfileById = async (id) => { // Запрос на получение профиля по айди
|
||
try {
|
||
const response = await fetch('https://api.anixart.tv/profile/' + id + '?token=TOKEN')
|
||
if (response.status !== 200) throw new Error()
|
||
let body = JSON.parse(await response.text())
|
||
return body
|
||
} catch (error) {
|
||
console.log(error);
|
||
return null;
|
||
}
|
||
}
|
||
|
||
exports.getProfileByName = async (name) => { // Запрос на получение профиля по имени
|
||
let todo = {
|
||
query: name,
|
||
searchBy: 0
|
||
}
|
||
|
||
try {
|
||
const response = await fetch('https://api.anixart.tv/search/profiles/0?token=TOKEN', {
|
||
method: 'POST',
|
||
body: JSON.stringify(todo),
|
||
headers: { 'Content-Type': 'application/json' }
|
||
})
|
||
if (response.status !== 200) throw new Error()
|
||
let body = JSON.parse(await response.text())
|
||
let profile = null
|
||
if (body.total_count < 26) {
|
||
for(let i = 0; i < body.content.length; i++) {
|
||
let profileLogin = body.content[i].login
|
||
if(name.toLowerCase() == profileLogin.toLowerCase()) {
|
||
profile = exports.getProfileById(body.content[i].id)
|
||
break;
|
||
}
|
||
}
|
||
return profile
|
||
} else {
|
||
for(let i = 0; i < Math.ceil(body.total_count/25); i++) { //Поиск аккаунта на других страницах
|
||
let responseMore = await fetch('https://api.anixart.tv/search/profiles/' + i + '?token=TOKEN', {
|
||
method: 'POST',
|
||
body: JSON.stringify(todo),
|
||
headers: { 'Content-Type': 'application/json' }
|
||
})
|
||
if (responseMore.status !== 200) throw new Error()
|
||
let bodyMore = JSON.parse(await responseMore.text())
|
||
|
||
for(let a = 0; a < bodyMore.content.length; a++) { //поиск на этой странице
|
||
let profileLogin = bodyMore.content[a].login
|
||
if(profileLogin && name.toLowerCase() == profileLogin.toLowerCase()) {
|
||
profile = exports.getProfileById(bodyMore.content[a].id)
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
return profile
|
||
}
|
||
} catch (error) {
|
||
console.log(error);
|
||
return null;
|
||
}
|
||
}
|
||
|
||
exports.getUserAnimeList = async (id, listType, page) => { // Запрос на получение списка (просмотренные, в планах и т.д.)
|
||
try {
|
||
const response = await fetch('https://api.anixart.tv/profile/list/all/' + id + "/" + listType + "/" + page + '?token=TOKEN')
|
||
if (response.status !== 200) throw new Error()
|
||
let body = JSON.parse(await response.text())
|
||
return body
|
||
} catch (error) {
|
||
console.log(error);
|
||
return null;
|
||
}
|
||
}
|
||
|
||
exports.getAnimeInfo = async (id) => { // Запрос на получение инфы об аниме
|
||
try {
|
||
const response = await fetch('https://api.anixart.tv/release/' + id + '?token=TOKEN')
|
||
if (response.status !== 200) throw new Error()
|
||
let body = JSON.parse(await response.text())
|
||
return body
|
||
} catch (error) {
|
||
console.log(error);
|
||
return null;
|
||
}
|
||
}
|
||
|
||
exports.getAnimeList = async (page, type) => { // Запрос на получение листа аниме по жанрам (тут новое, интересное)
|
||
let todo = {
|
||
sort: parseInt(type),
|
||
extended_mode: true
|
||
}
|
||
|
||
try {
|
||
const response = await fetch('https://api.anixart.tv/filter/'+ page +'?token=TOKEN', {
|
||
method: 'POST',
|
||
body: JSON.stringify(todo),
|
||
headers: { 'Content-Type': 'application/json' }
|
||
})
|
||
if (response.status !== 200) throw new Error()
|
||
let body = JSON.parse(await response.text())
|
||
return body
|
||
} catch (error) {
|
||
console.log(error);
|
||
return null;
|
||
}
|
||
}
|
||
|
||
exports.getRandomAnime = async () => { // Случайное аниме
|
||
try {
|
||
const response = await fetch('https://api.anixart.tv/release/random?token=TOKEN')
|
||
if (response.status !== 200) throw new Error()
|
||
let body = JSON.parse(await response.text())
|
||
return body
|
||
} catch (error) {
|
||
console.log(error);
|
||
return null;
|
||
}
|
||
}
|
||
|
||
exports.getInterestingAnime = async () => { // Интересное
|
||
try {
|
||
const response = await fetch('https://api.anixart.tv/discover/interesting?token=TOKEN')
|
||
if (response.status !== 200) throw new Error()
|
||
let body = JSON.parse(await response.text())
|
||
return body
|
||
} catch (error) {
|
||
console.log(error);
|
||
return null;
|
||
}
|
||
}
|
||
|
||
exports.getAnimeByName = async (text) => { // Аниме по названию
|
||
let todo = {
|
||
query: text,
|
||
searchBy: 0
|
||
}
|
||
|
||
try {
|
||
const response = await fetch('https://api.anixart.tv/search/releases/0?token=TOKEN', {
|
||
method: 'POST',
|
||
body: JSON.stringify(todo),
|
||
headers: { 'Content-Type': 'application/json' }
|
||
})
|
||
if (response.status !== 200) throw new Error()
|
||
let body = JSON.parse(await response.text())
|
||
return body
|
||
} catch (error) {
|
||
console.log(error);
|
||
return null;
|
||
}
|
||
} |