anime(animekai): Added server & sub/dub type preference

This commit is contained in:
Swakshan
2025-04-18 11:47:59 +05:30
parent 75f8172137
commit fc66a78b3f

View File

@@ -6,7 +6,7 @@ const mangayomiSources = [{
"iconUrl": "https://www.google.com/s2/favicons?sz=256&domain=https://animekai.to/", "iconUrl": "https://www.google.com/s2/favicons?sz=256&domain=https://animekai.to/",
"typeSource": "single", "typeSource": "single",
"itemType": 1, "itemType": 1,
"version": "0.2.2", "version": "0.2.3",
"pkgPath": "anime/src/en/animekai.js" "pkgPath": "anime/src/en/animekai.js"
}]; }];
@@ -222,10 +222,17 @@ class DefaultExtension extends MProvider {
// For anime episode video list // For anime episode video list
async getVideoList(url) { async getVideoList(url) {
var streams = [] var streams = []
var prefServer = this.getPreference("animekai_pref_stream_server")
// If no server is chosen, use the default server 1
if (prefServer.length < 1) prefServer.push("1")
var prefDubType = this.getPreference("animekai_pref_stream_subdub_type")
// If no dubtype is chosen, use the default dubtype sub
if (prefDubType.length < 1) prefDubType.push("sub")
var epSlug = url.split("||") var epSlug = url.split("||")
// the 1st time the loop runs its for censored version // The 1st time the loop runs its for censored version
var isUncensoredVersion = false var isUncensoredVersion = false
for (var epId of epSlug) { for (var epId of epSlug) {
@@ -243,30 +250,33 @@ class DefaultExtension extends MProvider {
for (var dubSection of server_items) { for (var dubSection of server_items) {
var dubType = dubSection.attr("data-id") var dubType = dubSection.attr("data-id")
dubType = dubType == "sub" ? "hardsub" : dubType // If dubtype is not in preference dont include it
if (!prefDubType.includes(dubType)) continue
dubSection.select("span.server").forEach(ser => { for (var ser of dubSection.select("span.server")) {
var serverName = ser.text var serverName = ser.text
// If servername is not in preference dont include it
if (!prefServer.includes(serverName.replace("Server ", ""))) continue
var dataId = ser.attr("data-lid") var dataId = ser.attr("data-lid")
SERVERDATA.push({ SERVERDATA.push({
serverName, serverName,
dataId, dataId,
dubType dubType
}) })
}) }
} }
//SERVERDATA = [{ "serverName": "Server 1", "dataId": "", "dubType": "hardsub" }]...
for (var serverData of SERVERDATA) { for (var serverData of SERVERDATA) {
var serverName = serverData.serverName var serverName = serverData.serverName
var dataId = serverData.dataId var dataId = serverData.dataId
var dubType = serverData.dubType.toUpperCase() var dubType = serverData.dubType.toUpperCase()
var megaUrl = await this.getMegaUrl(dataId) dubType = dubType == "SUB" ? "HARDSUB" : dubType
dubType = isUncensoredVersion ? `${dubType} [Uncensored]` : dubType dubType = isUncensoredVersion ? `${dubType} [Uncensored]` : dubType
var megaUrl = await this.getMegaUrl(dataId)
var serverStreams = await this.decryptMegaEmbed(megaUrl, serverName, dubType) var serverStreams = await this.decryptMegaEmbed(megaUrl, serverName, dubType)
streams = [...streams, ...serverStreams] streams = [...streams, ...serverStreams]
@@ -281,9 +291,9 @@ class DefaultExtension extends MProvider {
streams[streams.length - 1].subtitles = subs; streams[streams.length - 1].subtitles = subs;
} }
} }
// the 2nd time the loop runs its for uncensored version // The 2nd time the loop runs its for uncensored version
isUncensoredVersion = true; isUncensoredVersion = true;
/// main for end // Main for ends
} }
return streams return streams
@@ -450,6 +460,24 @@ class DefaultExtension extends MProvider {
summary: "", summary: "",
value: true value: true
} }
}, {
key: "animekai_pref_stream_server",
multiSelectListPreference: {
title: 'Preferred server',
summary: 'Choose the server/s you want to extract streams from',
values: ["1"],
entries: ["Server 1", "Server 2"],
entryValues: ["1", "2"]
}
}, {
key: "animekai_pref_stream_subdub_type",
multiSelectListPreference: {
title: 'Preferred stream sub/dub type',
summary: '',
values: ["sub", "softsub", "dub"],
entries: ["Hard Sub", "Soft Sub", "Dub"],
entryValues: ["sub", "softsub", "dub"]
}
}, { }, {
key: "animekai_pref_extract_streams", key: "animekai_pref_extract_streams",
switchPreferenceCompat: { switchPreferenceCompat: {
@@ -532,7 +560,7 @@ class DefaultExtension extends MProvider {
var streamData = await this.megaDecrypt(outEnc) var streamData = await this.megaDecrypt(outEnc)
var url = streamData.sources[0].file var url = streamData.sources[0].file
var streams =await this.formatStreams(url, serverName, dubType) var streams = await this.formatStreams(url, serverName, dubType)
var subtitles = streamData.tracks var subtitles = streamData.tracks
streams[0].subtitles = this.formatSubtitles(subtitles, dubType) streams[0].subtitles = this.formatSubtitles(subtitles, dubType)