mirror of
https://github.com/kodjodevf/mangayomi-extensions.git
synced 2026-02-25 00:00:38 +00:00
extension(animegg): extract streams
This commit is contained in:
@@ -6,7 +6,7 @@ const mangayomiSources = [{
|
||||
"iconUrl": "https://www.google.com/s2/favicons?sz=256&domain=https://www.animegg.org/",
|
||||
"typeSource": "single",
|
||||
"itemType": 1,
|
||||
"version": "0.0.3",
|
||||
"version": "1.0.0",
|
||||
"pkgPath": "anime/src/en/animegg.js"
|
||||
}];
|
||||
|
||||
@@ -19,8 +19,8 @@ class DefaultExtension extends MProvider {
|
||||
|
||||
getHeaders(url) {
|
||||
return {
|
||||
Referer: this.getSourcePreferences.baseUrl,
|
||||
Origin: this.getSourcePreferences.baseUrl
|
||||
"Referer": this.source.baseUrl,
|
||||
"Origin": this.source.baseUrl
|
||||
}
|
||||
}
|
||||
|
||||
@@ -28,10 +28,13 @@ class DefaultExtension extends MProvider {
|
||||
return new SharedPreferences().get(key);
|
||||
}
|
||||
|
||||
async request(slug) {
|
||||
async requestText(slug) {
|
||||
var url = `${this.source.baseUrl}${slug}`
|
||||
var res = await this.client.get(url, this.getHeaders());
|
||||
return new Document(res.body);
|
||||
return res.body;
|
||||
}
|
||||
async request(slug) {
|
||||
return new Document(await this.requestText(slug));
|
||||
}
|
||||
|
||||
async fetchPopularnLatest(slug) {
|
||||
@@ -169,25 +172,37 @@ class DefaultExtension extends MProvider {
|
||||
|
||||
|
||||
}
|
||||
// For novel html content
|
||||
async getHtmlContent(url) {
|
||||
throw new Error("getHtmlContent not implemented");
|
||||
}
|
||||
// Clean html up for reader
|
||||
async cleanHtmlContent(html) {
|
||||
throw new Error("cleanHtmlContent not implemented");
|
||||
}
|
||||
|
||||
// For anime episode video list
|
||||
async getVideoList(url) {
|
||||
throw new Error("getVideoList not implemented");
|
||||
}
|
||||
// For manga chapter pages
|
||||
async getPageList(url) {
|
||||
throw new Error("getPageList not implemented");
|
||||
}
|
||||
getFilterList() {
|
||||
throw new Error("getFilterList not implemented");
|
||||
var body = await this.request(url)
|
||||
var iframe = body.selectFirst("iframe")
|
||||
var src = iframe.attr('src')
|
||||
|
||||
body = await this.requestText(src)
|
||||
var sKey = "var videoSources = "
|
||||
var eKey = "var httpProtocol"
|
||||
var start = body.indexOf(sKey) + sKey.length
|
||||
var end = body.indexOf(eKey) - 8
|
||||
var videoSourcesStr = body.substring(start, end)
|
||||
let videoSources = eval("(" + videoSourcesStr + ")");
|
||||
var streams = []
|
||||
var headers = this.getHeaders();
|
||||
videoSources.forEach(videoSource => {
|
||||
var url = this.source.baseUrl +videoSource.file
|
||||
var quality = videoSource.label
|
||||
|
||||
streams.push({
|
||||
url,
|
||||
originalUrl: url,
|
||||
quality,
|
||||
headers
|
||||
});
|
||||
});
|
||||
return streams.reverse();
|
||||
|
||||
}
|
||||
|
||||
getSourcePreferences() {
|
||||
return [
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user