Merge pull request #154 from Swakshan/extension/aniplay

Fix Aniplay
This commit is contained in:
Moustapha Kodjo Amadou
2025-01-30 23:19:36 +01:00
committed by GitHub

View File

@@ -6,7 +6,7 @@ const mangayomiSources = [{
"iconUrl": "https://www.google.com/s2/favicons?sz=128&domain=https://aniplaynow.live/", "iconUrl": "https://www.google.com/s2/favicons?sz=128&domain=https://aniplaynow.live/",
"typeSource": "single", "typeSource": "single",
"itemType": 1, "itemType": 1,
"version": "1.0.2", "version": "1.1.0",
"dateFormat": "", "dateFormat": "",
"dateFormatLocale": "", "dateFormatLocale": "",
"pkgPath": "anime/src/en/aniplay.js" "pkgPath": "anime/src/en/aniplay.js"
@@ -322,7 +322,7 @@ class DefaultExtension extends MProvider {
throw new Error("Error: No data found for the given URL"); throw new Error("Error: No data found for the given URL");
} }
var user_provider = this.getPreference("aniplay_pref_provider_new"); var user_provider = this.getPreference("aniplay_pref_provider_2");
var choices = result var choices = result
if (user_provider !== "all") { if (user_provider !== "all") {
for (var ch of result) { for (var ch of result) {
@@ -386,14 +386,15 @@ class DefaultExtension extends MProvider {
} }
// Extracts the streams url for different resolutions from a hls stream. // Extracts the streams url for different resolutions from a hls stream.
async extractStreams(url, providerId) { async extractStreams(url, providerId, hdr = {}) {
const response = await new Client().get(url); const response = await new Client().get(url, hdr);
const body = response.body; const body = response.body;
const lines = body.split('\n'); const lines = body.split('\n');
var streams = [{ var streams = [{
url: url, url: url,
originalUrl: url, originalUrl: url,
quality: "auto", quality: `Auto - ${providerId}`,
headers: hdr
}]; }];
for (let i = 0; i < lines.length; i++) { for (let i = 0; i < lines.length; i++) {
@@ -410,6 +411,7 @@ class DefaultExtension extends MProvider {
url: m3u8Url, url: m3u8Url,
originalUrl: m3u8Url, originalUrl: m3u8Url,
quality: `${resolution} - ${providerId}`, quality: `${resolution} - ${providerId}`,
headers: hdr
}); });
} }
} }
@@ -417,9 +419,8 @@ class DefaultExtension extends MProvider {
} }
async getAnyaStreams(result) { async getAnyStreams(result) {
var m3u8Url = result.sources[0].url var m3u8Url = result.sources[0].url
m3u8Url = `https://prox.uqable.easypanel.host/fetch?url=${m3u8Url}&ref=https://anix.sh`
return await this.extractStreams(m3u8Url, "anya"); return await this.extractStreams(m3u8Url, "anya");
} }
@@ -427,13 +428,24 @@ class DefaultExtension extends MProvider {
var m3u8Url = result.sources[0].url var m3u8Url = result.sources[0].url
var streams = await this.extractStreams(m3u8Url, "yuki"); var streams = await this.extractStreams(m3u8Url, "yuki");
var subtitles = []
var subtitles = result.tracks result.subtitles.forEach(sub => {
subtitles.push({
"label": sub.lang,
"file": sub.url,
});
})
streams[0].subtitles = subtitles streams[0].subtitles = subtitles
return streams return streams
} }
async getPaheStreams(result) {
var m3u8Url = result.sources[0].url
var hdr = result.headers;
return await this.extractStreams(m3u8Url, "pahe", hdr);
}
// For anime episode video list // For anime episode video list
async getVideoList(url) { async getVideoList(url) {
var urlSplits = url.split("||") var urlSplits = url.split("||")
@@ -458,13 +470,15 @@ class DefaultExtension extends MProvider {
} }
var streams = [] var streams = []
if (providerId == "anya") { if (providerId == "yuki") {
streams = await this.getAnyaStreams(result)
}
else {
streams = await this.getYukiStreams(result) streams = await this.getYukiStreams(result)
} else if (providerId == "pahe") {
streams = await this.getPaheStreams(result)
} else {
streams = await this.getAnyStreams(result) //If new provider found getAnyaStreams will extract only the streams
} }
return await this.sortStreams(streams) return await this.sortStreams(streams)
} }
@@ -482,13 +496,13 @@ class DefaultExtension extends MProvider {
} }
}, },
{ {
"key": "aniplay_pref_provider_new", "key": "aniplay_pref_provider_2",
"listPreference": { "listPreference": {
"title": "Preferred provider", "title": "Preferred provider",
"summary": "", "summary": "",
"valueIndex": 0, "valueIndex": 0,
"entries": ["All", "Anya", "Yuki"], "entries": ["Any", "Yuki", "Pahe"],
"entryValues": ["all", "anya", "yuki"], "entryValues": ["any", "yuki", "pahe"],
} }
}, { }, {
"key": "aniplay_pref_mark_filler", "key": "aniplay_pref_mark_filler",