([\s\S]*?)<\/div>/);
const description = descMatch ? descMatch[1].trim() : "N/A";
return JSON.stringify([{
description: description,
aliases: "N/A",
airdate: "N/A"
}]);
} catch (err) {
return JSON.stringify([{
description: "Error",
aliases: "Error",
airdate: "Error"
}]);
}
}
async function extractEpisodes(id) {
const results = [];
try {
const numericIdMatch = id.match(/-(\d+)$/);
const numericId = numericIdMatch ? numericIdMatch[1] : id;
const response = await fetchv2("https://kaido.to/ajax/episode/list/" + numericId);
const data = await response.json();
const html = data.html;
const regex = /
]*class="ssl-item\s+ep-item"[\s\S]*?data-number="(\d+)"[\s\S]*?href="([^"]+)"[\s\S]*?>[\s\S]*?data-jname="([^"]+)"/g;
let match;
while ((match = regex.exec(html)) !== null) {
results.push({
href: match[2].trim(),
number: parseInt(match[1], 10)
});
}
return JSON.stringify(results);
} catch (err) {
return JSON.stringify([{
href: "Error",
number: "Error",
title: "Error"
}]);
}
}
async function extractStreamUrl(id) {
try {
const epMatch = id.match(/ep=(\d+)$/);
const numericId = epMatch ? epMatch[1] : id;
const url = "https://kaido.to/ajax/episode/servers?episodeId=" + numericId;
console.log(url);
const response = await fetchv2(url);
const json = await response.json();
console.log(JSON.stringify(json));
const html = json.html;
const serverMatch = html.match(/