mirror of
https://github.com/kodjodevf/mangayomi-extensions.git
synced 2026-02-14 19:01:15 +00:00
anime(gojo): Added stream extraction
This commit is contained in:
@@ -6,7 +6,7 @@ const mangayomiSources = [{
|
|||||||
"iconUrl": "https://www.google.com/s2/favicons?sz=128&domain=https://gojo.wtf/",
|
"iconUrl": "https://www.google.com/s2/favicons?sz=128&domain=https://gojo.wtf/",
|
||||||
"typeSource": "multi",
|
"typeSource": "multi",
|
||||||
"itemType": 1,
|
"itemType": 1,
|
||||||
"version": "0.0.3",
|
"version": "0.0.5",
|
||||||
"pkgPath": "anime/src/en/gojo.js"
|
"pkgPath": "anime/src/en/gojo.js"
|
||||||
}];
|
}];
|
||||||
|
|
||||||
@@ -205,11 +205,79 @@ class DefaultExtension extends MProvider {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// For anime episode video list
|
strixNzazaExtractor(res, prvd, type) {
|
||||||
async getVideoList(url) {
|
if(res == null) return {}
|
||||||
throw new Error("getVideoList not implemented");
|
|
||||||
|
var src = res.sources[0]
|
||||||
|
var url = src.url
|
||||||
|
var quality = `${prvd} - ${src.quality} - ${type.toUpperCase()}`
|
||||||
|
return {
|
||||||
|
url: url,
|
||||||
|
quality,
|
||||||
|
originalUrl: url
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
paheExtractor(res, type) {
|
||||||
|
var streams = []
|
||||||
|
if (res != null) {
|
||||||
|
var srcs = res.sources
|
||||||
|
var hdr = this.getHeaders()
|
||||||
|
for (var src of srcs) {
|
||||||
|
var url = src.url
|
||||||
|
var quality = `Pahe - ${src.quality} - ${type.toUpperCase()}`
|
||||||
|
streams.push({
|
||||||
|
url: url,
|
||||||
|
headers: hdr,
|
||||||
|
quality,
|
||||||
|
originalUrl: url
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return streams
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
async getStream(prvd, anilistId, epNum, subType, id, dub_id) {
|
||||||
|
var slug = `/tiddies?provider=${prvd}&id=${anilistId}&num=${epNum}&subType=${subType}&watchId=${id}&dub_id=${dub_id}`
|
||||||
|
return await this.gojoAPI(slug)
|
||||||
|
}
|
||||||
|
|
||||||
|
// For anime episode video list
|
||||||
|
async getVideoList(url) {
|
||||||
|
var split = url.split('||')
|
||||||
|
var anilistId = split[0]
|
||||||
|
var info = JSON.parse(split[1])
|
||||||
|
var streams = []
|
||||||
|
var extractDubs = this.getPreference("gojo_extract_dub_streams")
|
||||||
|
|
||||||
|
for (var prvd in info) {
|
||||||
|
var prd = info[prvd]
|
||||||
|
var epNum = prd.number
|
||||||
|
var subType = "sub"
|
||||||
|
var id = prd.id
|
||||||
|
var dub_id = null
|
||||||
|
|
||||||
|
var res = await this.getStream(prvd, anilistId, epNum, subType, id, dub_id)
|
||||||
|
if (prvd != "pahe") {
|
||||||
|
streams.push(this.strixNzazaExtractor(res, prvd, subType))
|
||||||
|
} else {
|
||||||
|
streams.push(...this.paheExtractor(res, subType))
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!extractDubs) continue
|
||||||
|
subType = "dub"
|
||||||
|
if (prd.hasOwnProperty("dub_id")) dub_id = prd.dub_id
|
||||||
|
|
||||||
|
var res = await this.getStream(prvd, anilistId, epNum, subType, id, dub_id)
|
||||||
|
if (prvd != "pahe") {
|
||||||
|
streams.push(this.strixNzazaExtractor(res, prvd, subType))
|
||||||
|
} else {
|
||||||
|
streams.push(...this.paheExtractor(res, subType))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return streams
|
||||||
|
}
|
||||||
getSourcePreferences() {
|
getSourcePreferences() {
|
||||||
return [
|
return [
|
||||||
{
|
{
|
||||||
@@ -228,6 +296,13 @@ class DefaultExtension extends MProvider {
|
|||||||
summary: "",
|
summary: "",
|
||||||
value: true
|
value: true
|
||||||
}
|
}
|
||||||
|
}, {
|
||||||
|
key: "gojo_extract_dub_streams",
|
||||||
|
switchPreferenceCompat: {
|
||||||
|
title: 'Extract dub streams',
|
||||||
|
summary: "",
|
||||||
|
value: false
|
||||||
|
}
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user