extension(animegg): Added dub streams

This commit is contained in:
Swakshan
2025-03-17 20:30:34 +05:30
parent 3909d62cfd
commit fb32417f35

View File

@@ -6,7 +6,7 @@ const mangayomiSources = [{
"iconUrl": "https://www.google.com/s2/favicons?sz=256&domain=https://www.animegg.org/", "iconUrl": "https://www.google.com/s2/favicons?sz=256&domain=https://www.animegg.org/",
"typeSource": "single", "typeSource": "single",
"itemType": 1, "itemType": 1,
"version": "1.0.0", "version": "1.0.1",
"pkgPath": "anime/src/en/animegg.js" "pkgPath": "anime/src/en/animegg.js"
}]; }];
@@ -25,7 +25,7 @@ class DefaultExtension extends MProvider {
} }
getPreference(key) { getPreference(key) {
return new SharedPreferences().get(key); return parseInt(new SharedPreferences().get(key));
} }
async requestText(slug) { async requestText(slug) {
@@ -67,7 +67,7 @@ class DefaultExtension extends MProvider {
var limit = start + 25; var limit = start + 25;
var category = "" var category = ""
var pop = parseInt(this.getPreference("animegg_popular_category")) var pop = this.getPreference("animegg_popular_category")
switch (pop) { switch (pop) {
case 1: { case 1: {
category = "sortBy=createdAt&sortDirection=DESC&"; category = "sortBy=createdAt&sortDirection=DESC&";
@@ -173,24 +173,24 @@ class DefaultExtension extends MProvider {
} }
// For anime episode video list async exxtractStreams(div,audio){
async getVideoList(url) {
var body = await this.request(url)
var iframe = body.selectFirst("iframe")
var src = iframe.attr('src')
body = await this.requestText(src) var slug = div.selectFirst("iframe").getSrc
var streams = []
if(slug.length < 1){
return streams;
}
var body = await this.requestText(slug)
var sKey = "var videoSources = " var sKey = "var videoSources = "
var eKey = "var httpProtocol" var eKey = "var httpProtocol"
var start = body.indexOf(sKey) + sKey.length var start = body.indexOf(sKey) + sKey.length
var end = body.indexOf(eKey) - 8 var end = body.indexOf(eKey) - 8
var videoSourcesStr = body.substring(start, end) var videoSourcesStr = body.substring(start, end)
let videoSources = eval("(" + videoSourcesStr + ")"); let videoSources = eval("(" + videoSourcesStr + ")");
var streams = []
var headers = this.getHeaders(); var headers = this.getHeaders();
videoSources.forEach(videoSource => { videoSources.forEach(videoSource => {
var url = this.source.baseUrl +videoSource.file var url = this.source.baseUrl +videoSource.file
var quality = videoSource.label var quality = `${videoSource.label} - ${audio}`
streams.push({ streams.push({
url, url,
@@ -200,6 +200,27 @@ class DefaultExtension extends MProvider {
}); });
}); });
return streams.reverse(); return streams.reverse();
}
// For anime episode video list
async getVideoList(url) {
var body = await this.request(url)
var sub = body.selectFirst("#subbed-Animegg")
var subStreams = await this.exxtractStreams(sub,"Sub")
var dub = body.selectFirst("#dubbed-Animegg")
var dubStreams = await this.exxtractStreams(dub,"Dub")
var pref = this.getPreference("animegg_stream_type")
var streams = [];
if(pref == 0){
streams = [...subStreams,...dubStreams]
}else{
streams = [...dubStreams,...subStreams]
}
return streams
} }
@@ -214,6 +235,16 @@ class DefaultExtension extends MProvider {
entries: ["Popular", "Newest", "Ongoing", "Completed", "Alphabetical"], entries: ["Popular", "Newest", "Ongoing", "Completed", "Alphabetical"],
entryValues: ["0", "1", "2", "3", "4"] entryValues: ["0", "1", "2", "3", "4"]
} }
},
{
key: "animegg_stream_type",
listPreference: {
title: 'Preferred stream type',
summary: '',
valueIndex: 0,
entries: ["Sub","Dub"],
entryValues: ["0", "1"]
}
} }
] ]
} }