extension(soaper): Added download server

This commit is contained in:
Swakshan
2025-03-19 16:31:06 +05:30
parent cd813d04cb
commit ef7bc892a4

View File

@@ -6,7 +6,7 @@ const mangayomiSources = [{
"iconUrl": "https://www.google.com/s2/favicons?sz=128&domain=https://soaper.cc/", "iconUrl": "https://www.google.com/s2/favicons?sz=128&domain=https://soaper.cc/",
"typeSource": "multi", "typeSource": "multi",
"isManga": false, "isManga": false,
"version": "1.0.1", "version": "1.0.2",
"dateFormat": "", "dateFormat": "",
"dateFormatLocale": "", "dateFormatLocale": "",
"pkgPath": "anime/src/all/soaper.js" "pkgPath": "anime/src/all/soaper.js"
@@ -24,7 +24,7 @@ class DefaultExtension extends MProvider {
return new SharedPreferences().get(key); return new SharedPreferences().get(key);
} }
getBasueUrl(){ getBasueUrl() {
return this.getPreference("soaper_override_base_url") return this.getPreference("soaper_override_base_url")
} }
@@ -36,10 +36,10 @@ class DefaultExtension extends MProvider {
return doc return doc
} }
async requestJSON(slug,data) { async requestJSON(slug, data) {
const baseUrl = this.getBasueUrl() const baseUrl = this.getBasueUrl()
var url = `${baseUrl}/${slug}` var url = `${baseUrl}/${slug}`
var res = await new Client().post(url, this.getHeaders(baseUrl),data); var res = await new Client().post(url, this.getHeaders(baseUrl), data);
return JSON.parse(res.body); return JSON.parse(res.body);
} }
@@ -171,30 +171,31 @@ class DefaultExtension extends MProvider {
async getVideoList(url) { async getVideoList(url) {
var body = await this.request(url) var body = await this.request(url)
var baseUrl = this.getBasueUrl() var baseUrl = this.getBasueUrl()
var streams = []
// Traditional servers
var eId = body.selectFirst("#hId").attr('value') var eId = body.selectFirst("#hId").attr('value')
var hIsW = body.selectFirst("#hIsW").attr('value') var hIsW = body.selectFirst("#hIsW").attr('value')
var apiType = url[0].toUpperCase() var apiType = url[0].toUpperCase()
var streams = [] var servers = [0, 1]
var servers = [0,1] for (var serverNum of servers) {
for(var serverNum of servers){
var serverName = body.selectFirst(`#server_button_${serverNum}`).text var serverName = body.selectFirst(`#server_button_${serverNum}`).text
if(serverName.length < 1) continue; if (serverName.length < 1) continue;
var data ={ var data = {
pass:eId, pass: eId,
param:"", param: "",
extra:"1", extra: "1",
e2:hIsW, e2: hIsW,
server: ""+serverNum, server: "" + serverNum,
} }
var res = await this.requestJSON(`home/index/Get${apiType}InfoAjax`,data) var res = await this.requestJSON(`home/index/Get${apiType}InfoAjax`, data)
var streamUrl = baseUrl+res.val var streamUrl = baseUrl + res.val
var subs = [] var subs = []
for (var sub of res.subs) { for (var sub of res.subs) {
subs.push({ subs.push({
file: baseUrl+sub.path, file: baseUrl + sub.path,
label: sub.name label: sub.name
}) })
} }
@@ -202,10 +203,29 @@ class DefaultExtension extends MProvider {
url: streamUrl, url: streamUrl,
originalUrl: streamUrl, originalUrl: streamUrl,
quality: serverName, quality: serverName,
subtitles:subs subtitles: subs
}); });
}
// Download servers
var modal_footer = body.select(".modal-footer > a")
if (modal_footer.length > 0) {
modal_footer.reverse()
for (var item of modal_footer) {
var dSlug = item.getHref
var dBody = await this.request(dSlug)
var res = dBody.selectFirst("#res").attr('value')
var mb = dBody.selectFirst("#mb").attr('value')
var streamLink = dBody.selectFirst("#link").attr('value')
streams.push({
url: streamLink,
originalUrl: streamLink,
quality: `Download Server: ${res} [${mb}]`,
});
}
} }
return streams return streams