mirror of
https://github.com/Radiquum/AniX.git
synced 2025-09-05 22:15:36 +05:00
eat/api-prox: add request timeout to release.ts hook
This commit is contained in:
parent
faad506c25
commit
9254703c08
1 changed files with 12 additions and 4 deletions
|
@ -7,11 +7,14 @@ export function match(path: string): boolean {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const timeout = 5000; // таймаут запроса к внешнему апи на 5 секунд
|
||||||
|
|
||||||
async function fetchShikiRating(title: string) {
|
async function fetchShikiRating(title: string) {
|
||||||
try {
|
try {
|
||||||
// ищём аниме на шикимори по названию, т.к. ид аниме аниксарт и шикимори разные и нет никакого референса друг на друга
|
// ищём аниме на шикимори по названию, т.к. ид аниме аниксарт и шикимори разные и нет никакого референса друг на друга
|
||||||
const shikiIdRes = await fetch(
|
const shikiIdRes = await fetch(
|
||||||
`https://shikimori.one/api/animes?search=${title}`
|
`https://shikimori.one/api/animes?search=${title}`,
|
||||||
|
{ signal: AbortSignal.timeout(timeout) }
|
||||||
);
|
);
|
||||||
if (!shikiIdRes.ok) throw new Error(); // если при поиске произошла ошибка, то возвращаем null
|
if (!shikiIdRes.ok) throw new Error(); // если при поиске произошла ошибка, то возвращаем null
|
||||||
|
|
||||||
|
@ -23,7 +26,8 @@ async function fetchShikiRating(title: string) {
|
||||||
|
|
||||||
// повторяем процесс, уже с ид от шикимори
|
// повторяем процесс, уже с ид от шикимори
|
||||||
const shikiAnimRes = await fetch(
|
const shikiAnimRes = await fetch(
|
||||||
`https://shikimori.one/api/animes/${shikiId}`
|
`https://shikimori.one/api/animes/${shikiId}`,
|
||||||
|
{ signal: AbortSignal.timeout(timeout) }
|
||||||
);
|
);
|
||||||
if (!shikiAnimRes.ok) throw new Error(); // если при произошла ошибка, то возвращаем null
|
if (!shikiAnimRes.ok) throw new Error(); // если при произошла ошибка, то возвращаем null
|
||||||
const shikiAnimJson = await shikiAnimRes.json();
|
const shikiAnimJson = await shikiAnimRes.json();
|
||||||
|
@ -38,7 +42,9 @@ async function fetchShikiRating(title: string) {
|
||||||
async function fetchMALRating(title: string) {
|
async function fetchMALRating(title: string) {
|
||||||
try {
|
try {
|
||||||
// ищём аниме на MAL по названию, через API Jikan, т.к. ид аниме аниксарт и шикимори разные и нет никакого референса друг на друга
|
// ищём аниме на MAL по названию, через API Jikan, т.к. ид аниме аниксарт и шикимори разные и нет никакого референса друг на друга
|
||||||
const malRes = await fetch(`https://api.jikan.moe/v4/anime?q=${title}`);
|
const malRes = await fetch(`https://api.jikan.moe/v4/anime?q=${title}`, {
|
||||||
|
signal: AbortSignal.timeout(timeout),
|
||||||
|
});
|
||||||
if (!malRes.ok) throw new Error(); // если при поиске произошла ошибка, то возвращаем null
|
if (!malRes.ok) throw new Error(); // если при поиске произошла ошибка, то возвращаем null
|
||||||
|
|
||||||
const malJson = await malRes.json();
|
const malJson = await malRes.json();
|
||||||
|
@ -63,7 +69,9 @@ export async function get(data: any, url: URL) {
|
||||||
// пушим строки в список, что-бы было легче их объединить
|
// пушим строки в список, что-бы было легче их объединить
|
||||||
const noteBuilder = [];
|
const noteBuilder = [];
|
||||||
if (data["release"]["note"]) noteBuilder.push(`${data.release.note}`); // первым добавляем оригинальное значение примечания, если оно есть
|
if (data["release"]["note"]) noteBuilder.push(`${data.release.note}`); // первым добавляем оригинальное значение примечания, если оно есть
|
||||||
data["release"]["note"] && (shikimoriRating || malRating) && noteBuilder.push("------"); // добавляем разделитель, если есть рейтинг и оригинальное примечание
|
data["release"]["note"] &&
|
||||||
|
(shikimoriRating || malRating) &&
|
||||||
|
noteBuilder.push("------"); // добавляем разделитель, если есть рейтинг и оригинальное примечание
|
||||||
shikimoriRating &&
|
shikimoriRating &&
|
||||||
noteBuilder.push(`<b>Рейтинг Shikimori:</b> ${shikimoriRating}★`); // добавляем рейтинг от шикимори
|
noteBuilder.push(`<b>Рейтинг Shikimori:</b> ${shikimoriRating}★`); // добавляем рейтинг от шикимори
|
||||||
malRating && noteBuilder.push(`<b>Рейтинг My Anime List:</b> ${malRating}★`); // добавляем рейтинг от MAL
|
malRating && noteBuilder.push(`<b>Рейтинг My Anime List:</b> ${malRating}★`); // добавляем рейтинг от MAL
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue