From 306504689d6048c2bcc0e4b5de36d8f58bc9bc5e Mon Sep 17 00:00:00 2001 From: aka paul <50n50@noreply.localhost> Date: Sat, 29 Nov 2025 21:56:42 +0000 Subject: [PATCH] Add kaliscan/kaliscan.js --- kaliscan/kaliscan.js | 98 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100644 kaliscan/kaliscan.js diff --git a/kaliscan/kaliscan.js b/kaliscan/kaliscan.js new file mode 100644 index 0000000..a490090 --- /dev/null +++ b/kaliscan/kaliscan.js @@ -0,0 +1,98 @@ +async function searchContent(keyword, page=0) { + const results = []; + try { + const response = await fetch("https://kaliscan.io/service/backend/search/?q=" + encodeURIComponent(keyword)); + const html = await response.text(); + + const regex = /href="([^"]*manga[^"]*)"[^>]*>[\s\S]*?]*>([\s\S]*?)<\/a><\/h3>/g; + + let match; + while ((match = regex.exec(html)) !== null) { + results.push({ + id: "https://kaliscan.io" + match[1].trim(), + imageURL: match[2].trim(), + title: match[3].replace(/<[^>]+>/g, '').trim() + }); + } + + return results; + } catch (err) { + return []; + } +} + +async function getContentData(url) { + try { + const response = await fetch(url); + const html = await response.text(); + + const descRegex = /\s*\s*
Chapter \2<\/strong>/g; + + let match; + + while ((match = regex.exec(html)) !== null) { + const chapterUrl = "https://kaliscan.io" + match[1]; + const chapterNum = match[2]; + results.push([ + String(chapterNum), + [{ + id: chapterUrl, + chapter: parseInt(chapterNum), + scanlation_group: `Chapter ${chapterNum}` + }] + ]); + } + + results.reverse(); + + return { en: results }; + } catch (err) { + return { en: [] }; + } +} + +async function getChapterImages(url) { + const results = []; + try { + const response = await fetch(url); + const html = await response.text(); + const regex = /var chapImages = "([^"]*)"/; + const match = regex.exec(html); + if (match) { + const imagesString = match[1]; + const images = imagesString.split(','); + results.push(...images); + } + + return results; + } catch (err) { + return []; + } +} \ No newline at end of file