From e2bc89511cdeb72af2bd6e8d8d0912daa1cb1f84 Mon Sep 17 00:00:00 2001 From: aka paul <50n50@noreply.localhost> Date: Wed, 25 Mar 2026 16:50:55 +0000 Subject: [PATCH] Update animekai/dub/animekai.js --- animekai/dub/animekai.js | 38 +++++++++++++++++++++++++++++++------- 1 file changed, 31 insertions(+), 7 deletions(-) diff --git a/animekai/dub/animekai.js b/animekai/dub/animekai.js index 0104015..3c23630 100644 --- a/animekai/dub/animekai.js +++ b/animekai/dub/animekai.js @@ -127,20 +127,44 @@ async function extractStreamUrl(url) { const fetchUrl = `${url}`; const response = await fetchv2("https://deno-proxies-sznvnpnxwhbv.deno.dev/?url=" + encodeURIComponent(fetchUrl)); const text = await response.text(); + + let ajaxResultHtml = ""; + try { + const parsedAjax = JSON.parse(text); + ajaxResultHtml = parsedAjax?.result || ""; + } catch {} + const cleanedHtml = cleanJsonHtml(text); + const cleanedAjaxResultHtml = cleanJsonHtml(ajaxResultHtml); + const serverHtmlSource = cleanedAjaxResultHtml || cleanedHtml; + const subRegex = /
]*>([\s\S]*?)<\/div>/; const softsubRegex = /
]*>([\s\S]*?)<\/div>/; const dubRegex = /
]*>([\s\S]*?)<\/div>/; - const subMatch = subRegex.exec(cleanedHtml); - const softsubMatch = softsubRegex.exec(cleanedHtml); - const dubMatch = dubRegex.exec(cleanedHtml); + const subMatch = subRegex.exec(serverHtmlSource); + const softsubMatch = softsubRegex.exec(serverHtmlSource); + const dubMatch = dubRegex.exec(serverHtmlSource); const subContent = subMatch ? subMatch[1].trim() : ""; const softsubContent = softsubMatch ? softsubMatch[1].trim() : ""; const dubContent = dubMatch ? dubMatch[1].trim() : ""; - const serverSpanRegex = /]*data-lid="([^"]+)"[^>]*>Server 1<\/span>/; - const serverIdDub = serverSpanRegex.exec(dubContent)?.[1]; - const serverIdSoftsub = serverSpanRegex.exec(softsubContent)?.[1]; - const serverIdSub = serverSpanRegex.exec(subContent)?.[1]; + + const extractServerId = (content) => { + if (!content) { + return null; + } + + const preferred = /]*data-lid="([^"]+)"[^>]*>\s*Server\s*1\s*<\/span>/i.exec(content); + if (preferred?.[1]) { + return preferred[1]; + } + + const fallback = /]*data-lid="([^"]+)"/i.exec(content); + return fallback?.[1] || null; + }; + + const serverIdDub = extractServerId(dubContent); + const serverIdSoftsub = extractServerId(softsubContent); + const serverIdSub = extractServerId(subContent); const tokenRequestData = [ { name: "Dub", data: serverIdDub },