This commit is contained in:
aka paul
2026-03-09 14:49:08 +01:00
12 changed files with 83 additions and 26 deletions
+8 -7
View File
@@ -225,23 +225,23 @@ async function extractStreamUrl(url) {
const decryptedUrls = await processStreams(streamUrls); const decryptedUrls = await processStreams(streamUrls);
const decryptedSoftsub = decryptedUrls.Softsub || decryptedUrls.Dub || decryptedUrls.Sub; const decryptedSoftsub = decryptedUrls.Softsub || decryptedUrls.Dub || decryptedUrls.Sub;
console.log(decryptedSoftsub);
const headers = { const headers = {
"Referer": "https://anikai.to/", "Referer": "https://anikai.to/",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36" "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36"
}; };
if (decryptedSoftsub) { if (decryptedSoftsub) {
const response = await fetchv2(decryptedSoftsub.replace("/e/", "/media/"), headers); const mediaUrl = decryptedSoftsub.replace("/e/", "/media/");
const response = await fetchv2(mediaUrl, headers);
const responseJson = await response.json(); const responseJson = await response.json();
const result = responseJson?.result; const result = responseJson?.result;
const postData = { const postData = {
"text": result, "text": result,
"Useragent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36" "agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36"
} }
const finalResponse = await fetchv2("https://ilovekai.simplepostrequest.workers.dev/ilovebush", {}, "POST", JSON.stringify(postData)); const finalResponse = await fetchv2("https://enc-dec.app/api/dec-mega", { "Content-Type": "application/json" }, "POST", JSON.stringify(postData));
const finalJson = await finalResponse.json(); const finalJson = await finalResponse.json();
const m3u8Link = finalJson?.result?.sources?.[0]?.file; const m3u8Link = finalJson?.result?.sources?.[0]?.file;
@@ -258,10 +258,11 @@ async function extractStreamUrl(url) {
} }
} }
return JSON.stringify({ const finalResult = {
stream: m3u8Link, stream: m3u8Link,
subtitles: "https://deno-proxies-sznvnpnxwhbv.deno.dev/?url="+ encodeURIComponent(subtitleUrl) subtitles: subtitleUrl ? "https://deno-proxies-sznvnpnxwhbv.deno.dev/?url="+ encodeURIComponent(subtitleUrl) : null
}); };
return JSON.stringify(finalResult);
} }
return "error"; return "error";
+1 -1
View File
@@ -5,7 +5,7 @@
"name": "50/50", "name": "50/50",
"icon": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQ3122kQwublLkZ6rf1fEpUP79BxZOFmH9BSA&s" "icon": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQ3122kQwublLkZ6rf1fEpUP79BxZOFmH9BSA&s"
}, },
"version": "1.0.0", "version": "1.0.1",
"language": "Arabic", "language": "Arabic",
"streamType": "HLS", "streamType": "HLS",
"quality": "1080p", "quality": "1080p",
+1 -1
View File
@@ -5,7 +5,7 @@
"name": "50/50", "name": "50/50",
"icon": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQ3122kQwublLkZ6rf1fEpUP79BxZOFmH9BSA&s" "icon": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQ3122kQwublLkZ6rf1fEpUP79BxZOFmH9BSA&s"
}, },
"version": "1.1.1", "version": "1.1.3",
"language": "English", "language": "English",
"streamType": "HLS", "streamType": "HLS",
"quality": "1080p", "quality": "1080p",
+5 -4
View File
@@ -1,22 +1,23 @@
{ {
"sourceName": "AniWorld (ENG SUB)", "sourceName": "AniWorld (ENG SUB)",
"iconUrl": "https://git.luna-app.eu/50n50/sources/raw/branch/main/aniworld/aniworld.png", "iconUrl": "https://git.luna-app.eu/Cufiy/sora-modules/raw/branch/main/modules/aniworld/aniworld.png",
"author": { "author": {
"name": "Cufiy & Hamzo", "name": "Cufiy & Hamzo",
"icon": "https://files.catbox.moe/ttj4fc.gif", "icon": "https://files.catbox.moe/ttj4fc.gif",
"url": "https://github.com/JMcrafter26" "url": "https://github.com/JMcrafter26"
}, },
"version": "0.3.2", "version": "0.3.3",
"language": "English (SUB)", "language": "English (SUB)",
"streamType": "HLS", "streamType": "HLS",
"quality": "720p", "quality": "720p",
"baseUrl": "https://google.com", "baseUrl": "https://google.com",
"searchBaseUrl": "https://aniworld.to/ajax/seriesSearch?keyword=%s", "searchBaseUrl": "https://aniworld.to/ajax/seriesSearch?keyword=%s",
"scriptUrl": "https://git.luna-app.eu/50n50/sources/raw/branch/main/aniworld/v2/AniWorldEngSub_v2.js", "scriptUrl": "https://git.luna-app.eu/Cufiy/sora-modules/raw/branch/main/modules/aniworld/v2/AniWorldEngSub_v2.js",
"asyncJS": true, "asyncJS": true,
"streamAsyncJS": false, "streamAsyncJS": false,
"type": "anime", "type": "anime",
"supportsMojuru": true, "supportsMojuru": true,
"supportsSora": true, "supportsSora": true,
"supportsLuna": true "supportsLuna": true,
"supportsSoru": true
} }
+5 -4
View File
@@ -1,22 +1,23 @@
{ {
"sourceName": "AniWorld (GER DUB)", "sourceName": "AniWorld (GER DUB)",
"iconUrl": "https://git.luna-app.eu/50n50/sources/raw/branch/main/aniworld/aniworld.png", "iconUrl": "https://git.luna-app.eu/Cufiy/sora-modules/raw/branch/main/modules/aniworld/aniworld.png",
"author": { "author": {
"name": "Cufiy & Hamzo", "name": "Cufiy & Hamzo",
"icon": "https://files.catbox.moe/ttj4fc.gif", "icon": "https://files.catbox.moe/ttj4fc.gif",
"url": "https://github.com/JMcrafter26" "url": "https://github.com/JMcrafter26"
}, },
"version": "0.3.2", "version": "0.3.3",
"language": "German (DUB)", "language": "German (DUB)",
"streamType": "HLS", "streamType": "HLS",
"quality": "720p", "quality": "720p",
"baseUrl": "https://google.com", "baseUrl": "https://google.com",
"searchBaseUrl": "https://aniworld.to/ajax/seriesSearch?keyword=%s", "searchBaseUrl": "https://aniworld.to/ajax/seriesSearch?keyword=%s",
"scriptUrl": "https://git.luna-app.eu/50n50/sources/raw/branch/main/aniworld/v2/AniWorldGerDub_v2.js", "scriptUrl": "https://git.luna-app.eu/Cufiy/sora-modules/raw/branch/main/modules/aniworld/v2/AniWorldGerDub_v2.js",
"asyncJS": true, "asyncJS": true,
"streamAsyncJS": false, "streamAsyncJS": false,
"type": "anime", "type": "anime",
"supportsMojuru": true, "supportsMojuru": true,
"supportsSora": true, "supportsSora": true,
"supportsLuna": true "supportsLuna": true,
"supportsSoru": true
} }
+5 -4
View File
@@ -1,22 +1,23 @@
{ {
"sourceName": "AniWorld (GER SUB)", "sourceName": "AniWorld (GER SUB)",
"iconUrl": "https://git.luna-app.eu/50n50/sources/raw/branch/main/aniworld/aniworld.png", "iconUrl": "https://git.luna-app.eu/Cufiy/sora-modules/raw/branch/main/modules/aniworld/aniworld.png",
"author": { "author": {
"name": "Cufiy & Hamzo", "name": "Cufiy & Hamzo",
"icon": "https://files.catbox.moe/ttj4fc.gif", "icon": "https://files.catbox.moe/ttj4fc.gif",
"url": "https://github.com/JMcrafter26" "url": "https://github.com/JMcrafter26"
}, },
"version": "0.3.2", "version": "0.3.3",
"language": "German (SUB)", "language": "German (SUB)",
"streamType": "HLS", "streamType": "HLS",
"quality": "720p", "quality": "720p",
"baseUrl": "https://google.com", "baseUrl": "https://google.com",
"searchBaseUrl": "https://aniworld.to/ajax/seriesSearch?keyword=%s", "searchBaseUrl": "https://aniworld.to/ajax/seriesSearch?keyword=%s",
"scriptUrl": "https://git.luna-app.eu/50n50/sources/raw/branch/main/aniworld/v2/AniWorldGerSub_v2.js", "scriptUrl": "https://git.luna-app.eu/Cufiy/sora-modules/raw/branch/main/modules/aniworld/v2/AniWorldGerSub_v2.js",
"asyncJS": true, "asyncJS": true,
"streamAsyncJS": false, "streamAsyncJS": false,
"type": "anime", "type": "anime",
"supportsMojuru": true, "supportsMojuru": true,
"supportsSora": true, "supportsSora": true,
"supportsLuna": true "supportsLuna": true,
"supportsSoru": true
} }
@@ -1,3 +1,11 @@
// Moved to https://git.luna-app.eu/Cufiy/sora-modules/
/////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////// Main Functions ////////////////////////////// ///////////////////////////// Main Functions //////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////
@@ -1,3 +1,10 @@
// Moved to https://git.luna-app.eu/Cufiy/sora-modules/
/////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////// Main Functions ////////////////////////////// ///////////////////////////// Main Functions //////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////
@@ -1,3 +1,10 @@
// Moved to https://git.luna-app.eu/Cufiy/sora-modules/
/////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////// Main Functions ////////////////////////////// ///////////////////////////// Main Functions //////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////
+32 -2
View File
@@ -15,6 +15,36 @@ const allowEnglishInLanguages = false; // [true, false]
const removeUnknownLanguages = false; // [true, false] const removeUnknownLanguages = false; // [true, false]
// Settings end // Settings end
function btoa(str) {
if (typeof globalThis !== "undefined" && typeof globalThis.btoa === "function" && globalThis.btoa !== btoa) {
return globalThis.btoa(str);
}
if (typeof Buffer !== "undefined") {
return Buffer.from(str, "utf8").toString("base64");
}
const chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
let result = "";
let i = 0;
while (i < str.length) {
const byte1 = str.charCodeAt(i++) & 0xff;
const hasByte2 = i < str.length;
const byte2 = hasByte2 ? str.charCodeAt(i++) & 0xff : 0;
const hasByte3 = i < str.length;
const byte3 = hasByte3 ? str.charCodeAt(i++) & 0xff : 0;
const chunk = (byte1 << 16) | (byte2 << 8) | byte3;
result += chars[(chunk >> 18) & 63];
result += chars[(chunk >> 12) & 63];
result += hasByte2 ? chars[(chunk >> 6) & 63] : "=";
result += hasByte3 ? chars[chunk & 63] : "=";
}
return result;
}
async function searchResults(keyword) { async function searchResults(keyword) {
try { try {
const moviesresponse = await fetchv2( const moviesresponse = await fetchv2(
@@ -186,8 +216,8 @@ async function extractStreamUrl(ID) {
try { try {
const endpoint = type === "movie" const endpoint = type === "movie"
? "https://comet.elfhosted.com/" + encodedConfig + "/stream/movie/" + actualID + ".json" ? "https://comet.feels.legal/" + encodedConfig + "/stream/movie/" + actualID + ".json"
: "https://comet.elfhosted.com/" + encodedConfig + "/stream/series/" + actualID + ".json"; : "https://comet.feels.legal/" + encodedConfig + "/stream/series/" + actualID + ".json";
const response = await fetchv2(endpoint); const response = await fetchv2(endpoint);
const data = await response.json(); const data = await response.json();
+1 -1
View File
@@ -5,7 +5,7 @@
"name": "50/50", "name": "50/50",
"icon": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQ3122kQwublLkZ6rf1fEpUP79BxZOFmH9BSA&s" "icon": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQ3122kQwublLkZ6rf1fEpUP79BxZOFmH9BSA&s"
}, },
"version": "1.0.1", "version": "1.0.2",
"language": "English", "language": "English",
"streamType": "MKV", "streamType": "MKV",
"quality": "4K", "quality": "4K",
+2 -1
View File
@@ -296,7 +296,8 @@ async function ilovearmpits(m3u8Url) {
const headers = { const headers = {
"Accept": "*/*", "Accept": "*/*",
"User-Agent": "Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Mobile Safari/537.36", "User-Agent": "Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Mobile Safari/537.36",
"Referer": "https://vidfast.pro/" "Referer": "https://vidfast.pro/",
"X-Requested-With": "XMLHttpRequest"
}; };
const response = await fetchv2(m3u8Url, headers); const response = await fetchv2(m3u8Url, headers);