mirror of
https://github.com/kodjodevf/mangayomi-extensions.git
synced 2026-02-14 10:51:17 +00:00
anime(animekai): Added server & sub/dub type preference
This commit is contained in:
@@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user