From d23703b212b2d1d05231fa25e6fb5cbd8cdab609 Mon Sep 17 00:00:00 2001 From: Radiquum Date: Tue, 8 Jul 2025 15:51:54 +0500 Subject: [PATCH] fix/api-prox: PR Comments --- api-prox/hooks/episode.disabled.ts | 34 ++++++++++++++++++------------ api-prox/hooks/release.ts | 4 ++-- api-prox/index.ts | 7 ++---- 3 files changed, 24 insertions(+), 21 deletions(-) diff --git a/api-prox/hooks/episode.disabled.ts b/api-prox/hooks/episode.disabled.ts index d9c148d..b483741 100644 --- a/api-prox/hooks/episode.disabled.ts +++ b/api-prox/hooks/episode.disabled.ts @@ -14,10 +14,9 @@ if (process.env.HOST_URL) { HOSTNAME = process.env.HOST_URL; } - export function match(path: string): boolean { // если не установлен хост, не запускаем хук - if (!HOSTNAME) return false + if (!HOSTNAME) return false; // используем только страницы с путём /episode/* const pathRe = /^\/episode\/\d+/; if (pathRe.test(path)) return true; @@ -226,9 +225,9 @@ export async function get(data: any, url: URL) { data.episodes[0].release = release.release; data.episodes[0].source = source; data.episodes[0].source.episodes_count = 0; - !data.episodes[0].source.type.workers ? - (data.episodes[0].source.type.workers = "") - : null; + data.episodes[0].source.type.workers ? + null + : (data.episodes[0].source.type.workers = ""); } const ctypes = info.types; @@ -244,11 +243,16 @@ export async function get(data: any, url: URL) { const episodes = csource.episodes; if (!episodes || episodes.length == 0) return data; - if (data.episodes && data.episodes.length > 0 && data.episodes[0].source.name == "Sibnet") { + if ( + data.episodes && + data.episodes.length > 0 && + data.episodes[0].source && + data.episodes[0].source.name == "Sibnet" + ) { data.episodes.forEach((item: EpisodeInfo, index: number) => { - !item.name ? + item.name ? null : ( (data.episodes[index].name = `${item.position + 1} серия`) - : null; + ); }); } @@ -262,8 +266,10 @@ export async function get(data: any, url: URL) { episode.position ? (existingEpisode.position = episode.position) : null; episode.name ? (existingEpisode.name = episode.name) : null; episode.url ? (existingEpisode.url = episode.url) : null; - episode.iframe ? (existingEpisode.iframe = episode.iframe) : null; - episode.is_filler ? + episode.iframe !== undefined ? + (existingEpisode.iframe = episode.iframe) + : null; + episode.is_filler !== undefined ? (existingEpisode.is_filler = episode.is_filler) : null; } else { @@ -271,15 +277,15 @@ export async function get(data: any, url: URL) { ...data.episodes, { "@id": data.episodes.length == 0 ? 1 : 4 + data.episodes.length, - position: - episode.position ? episode.position : data.episodes.length, + position: episode.position || data.episodes.length, release: data.episodes.length > 0 ? 2 : release.release, source: data.episodes.length > 0 ? 3 : source, name: episode.name || "Неизвестная Серия", url: episode.url || "", - iframe: episode.iframe || true, + iframe: episode.iframe !== undefined ? episode.iframe : true, addedDate: 0, - is_filler: episode.is_filler || false, + is_filler: + episode.is_filler !== undefined ? episode.is_filler : false, is_watched: false, }, ]; diff --git a/api-prox/hooks/release.ts b/api-prox/hooks/release.ts index f3c2e02..5ee22f7 100644 --- a/api-prox/hooks/release.ts +++ b/api-prox/hooks/release.ts @@ -24,7 +24,7 @@ export async function get(data: any, url: URL) { // повторяем процесс, уже с ид от шикимори const shikiAnimRes = await fetch( - `https://shikimori.one/api/animes/${shikiId}}` + `https://shikimori.one/api/animes/${shikiId}` ); if (!shikiAnimRes.ok) return data; const shikiAnimJson = await shikiAnimRes.json(); @@ -32,7 +32,7 @@ export async function get(data: any, url: URL) { // пушим строки в список, что-бы было легче их объединить const noteBuilder = []; if (data["release"]["note"] != null) noteBuilder.push(`${data.release.note}
---
`); // если в поле note уже что-то есть, разделяем значение и рейтинг - noteBuilder.push(`Рейтинг Shikimori: ${shikiAnimJson.score}★`); // добавляем рейтинг от шикимори + noteBuilder.push(`Рейтинг Shikimori: ${Number(shikiAnimJson.score)}★`); // добавляем рейтинг от шикимори data["release"]["note"] = noteBuilder.toString(); // заменяем оригинальное поле нашей строкой data["release"]["id_shikimori"] = shikiId; // добавляем айди шикимори в ответ, потому что почему нет diff --git a/api-prox/index.ts b/api-prox/index.ts index 0bec03a..44e211c 100644 --- a/api-prox/index.ts +++ b/api-prox/index.ts @@ -14,6 +14,7 @@ import { MediaChromeTheme } from "./media-chrome"; import { Iframe } from "./iframe"; const app = express(); +app.use(express.raw({ inflate: true, limit: "50mb", type: "multipart/form-data" })); app.use(express.json()); app.use(express.urlencoded({ extended: true })); @@ -265,14 +266,10 @@ app.post("/*path", async (req, res) => { : "application/json"; switch (reqContentType) { case "multipart/form-data": - const formData = new FormData(); - for (const name in req.body) { - formData.append(name, req.body[name]); - } apiResponse = await fetch(url.toString(), { method: "POST", headers: apiHeaders, - body: formData, + body: req.body }); break; case "application/x-www-form-urlencoded":