extension(autembed): Added flicky server

This commit is contained in:
Swakshan
2025-01-03 15:24:12 +05:30
parent c4bc4d760c
commit 9f97d0d486

View File

@@ -6,7 +6,7 @@ const mangayomiSources = [{
"iconUrl": "https://www.google.com/s2/favicons?sz=64&domain=https://autoembed.cc/", "iconUrl": "https://www.google.com/s2/favicons?sz=64&domain=https://autoembed.cc/",
"typeSource": "multi", "typeSource": "multi",
"isManga": false, "isManga": false,
"version": "1.1.2", "version": "1.1.3",
"dateFormat": "", "dateFormat": "",
"dateFormatLocale": "", "dateFormatLocale": "",
"pkgPath": "anime/src/all/autoembed.js" "pkgPath": "anime/src/all/autoembed.js"
@@ -176,7 +176,7 @@ class DefaultExtension extends MProvider {
}); });
} }
} }
return await this.sortStreams(streams); return streams
} }
@@ -184,13 +184,14 @@ class DefaultExtension extends MProvider {
var streams = []; var streams = [];
var quality = ["auto", "360", "480", "720", "1080"] var quality = ["auto", "360", "480", "720", "1080"]
for (var q of quality) { for (var q of quality) {
var link = url
if (q != "auto") { if (q != "auto") {
url = url.replace("index.m3u8", `${q}/index.m3u8`) link = link.replace("index.m3u8", `${q}/index.m3u8`)
q = `${q}p` q = `${q}p`
} }
streams.push({ streams.push({
url: url, url: link,
originalUrl: url, originalUrl: link,
quality: `${lang} - ${q}`, quality: `${lang} - ${q}`,
headers: hdr headers: hdr
}); });
@@ -263,7 +264,6 @@ class DefaultExtension extends MProvider {
var body = JSON.parse(response.body); var body = JSON.parse(response.body);
var link = body.playlist[0].file var link = body.playlist[0].file
subtitles = await this.getSubtitleList(tmdb, s, e)
streams.push({ streams.push({
url: link, url: link,
originalUrl: link, originalUrl: link,
@@ -282,6 +282,7 @@ class DefaultExtension extends MProvider {
id = `${id}&s=${s}&e=${e}` id = `${id}&s=${s}&e=${e}`
} }
var api = `https://autoembed.cc/embed/player.php?id=${id}` var api = `https://autoembed.cc/embed/player.php?id=${id}`
var response = await new Client().get(api); var response = await new Client().get(api);
if (response.statusCode != 200) { if (response.statusCode != 200) {
@@ -290,10 +291,12 @@ class DefaultExtension extends MProvider {
var body = response.body var body = response.body
var sKey = '"file": ' var sKey = '"file": '
var eKey = "]});" var eKey = "]});"
var start = body.indexOf(sKey) + sKey.length var start = body.indexOf(sKey)
if (start < 0) { if (start < 0) {
throw new Error("Video unavailable"); throw new Error("Video unavailable");
} }
start += sKey.length
var end = body.substring(start,).indexOf(eKey) + start - 1 var end = body.substring(start,).indexOf(eKey) + start - 1
var strms = JSON.parse(body.substring(start, end) + "]") var strms = JSON.parse(body.substring(start, end) + "]")
for (var strm of strms) { for (var strm of strms) {
@@ -302,7 +305,41 @@ class DefaultExtension extends MProvider {
var streamSplit = await this.splitStreams(link, lang); var streamSplit = await this.splitStreams(link, lang);
streams = [...streams, ...streamSplit] streams = [...streams, ...streamSplit]
} }
subtitles = await this.getSubtitleList(tmdb, s, e)
break;
}
case 4: {
var s = "0"
var e = "0"
if (media_type == "tv") {
s = parts[2]
e = parts[3]
id = `${id}&season=${s}&episode=${e}`
}
var api = `https://player.flicky.host/Server-main.php?id=${id}`
var response = await new Client().get(api, { "Referer": "https://flicky.host/" });
if (response.statusCode != 200) {
throw new Error("Video unavailable");
}
var body = response.body
var sKey = 'streams = '
var eKey = "];"
var start = body.indexOf(sKey)
if (start < 0) {
throw new Error("Video unavailable");
}
start += sKey.length
var end = body.substring(start,).indexOf(eKey) + start + 1
var strms = JSON.parse(body.substring(start, end))
for (var strm of strms) {
var link = strm.url
var lang = strm.language
var streamSplit = await this.splitStreams(link, lang);
streams = [...streams, ...streamSplit]
}
break; break;
} }
@@ -326,8 +363,15 @@ class DefaultExtension extends MProvider {
} }
} }
streams[0].subtitles = subtitles if (streams.length < 1) {
return streams throw new Error("Video unavailable");
}
if (subtitles.length < 1) {
streams[0].subtitles = await this.getSubtitleList(tmdb, s, e)
}
return await this.sortStreams(streams)
} }
// For manga chapter pages // For manga chapter pages
async getPageList() { async getPageList() {
@@ -372,8 +416,8 @@ class DefaultExtension extends MProvider {
title: 'Preferred stream source', title: 'Preferred stream source',
summary: '', summary: '',
valueIndex: 0, valueIndex: 0,
entries: ["tom.autoembed.cc", "123embed.net", "autoembed.cc - Indian languages"], entries: ["tom.autoembed.cc", "123embed.net", "autoembed.cc - Indian languages", "flicky.host - Indian languages"],
entryValues: ["1", "2", "3"] entryValues: ["1", "2", "3", "4"]
} }
}, },
]; ];