mirror of
https://github.com/kodjodevf/mangayomi-extensions.git
synced 2026-02-14 10:51:17 +00:00
extension(NetMirror): Added prime
This commit is contained in:
@@ -1,5 +1,6 @@
|
|||||||
const mangayomiSources = [{
|
const mangayomiSources = [{
|
||||||
"name": "NetflixMirror",
|
"name": "NetMirror",
|
||||||
|
"id": 446414301,
|
||||||
"lang": "all",
|
"lang": "all",
|
||||||
"baseUrl": "https://iosmirror.cc",
|
"baseUrl": "https://iosmirror.cc",
|
||||||
"apiUrl": "https://pcmirror.cc",
|
"apiUrl": "https://pcmirror.cc",
|
||||||
@@ -7,7 +8,7 @@ const mangayomiSources = [{
|
|||||||
"typeSource": "single",
|
"typeSource": "single",
|
||||||
"isManga": false,
|
"isManga": false,
|
||||||
"itemType": 1,
|
"itemType": 1,
|
||||||
"version": "0.0.10",
|
"version": "0.1.0",
|
||||||
"dateFormat": "",
|
"dateFormat": "",
|
||||||
"dateFormatLocale": "",
|
"dateFormatLocale": "",
|
||||||
"pkgPath": "anime/src/all/netflixmirror.js"
|
"pkgPath": "anime/src/all/netflixmirror.js"
|
||||||
@@ -24,8 +25,15 @@ class DefaultExtension extends MProvider {
|
|||||||
return preferences.get(key);
|
return preferences.get(key);
|
||||||
}
|
}
|
||||||
|
|
||||||
getPoster(id) {
|
getPoster(id, service) {
|
||||||
return `https://imgcdn.media/poster/v/${id}.jpg`
|
if (service === "nf")
|
||||||
|
return `https://imgcdn.media/poster/v/${id}.jpg`
|
||||||
|
if (service === "pv")
|
||||||
|
return `https://imgcdn.media/pv/480/${id}.jpg`
|
||||||
|
}
|
||||||
|
|
||||||
|
getServiceDetails() {
|
||||||
|
return this.getPreference("netmirror_pref_service");
|
||||||
}
|
}
|
||||||
|
|
||||||
async getCookie() {
|
async getCookie() {
|
||||||
@@ -48,13 +56,21 @@ class DefaultExtension extends MProvider {
|
|||||||
preferences.setString("cookie_ts", data_time);
|
preferences.setString("cookie_ts", data_time);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var service = this.getServiceDetails();
|
||||||
|
|
||||||
return cookie;
|
return `ott=${service}; ${cookie}`;
|
||||||
}
|
}
|
||||||
async request(url, cookie, tvApi = false) {
|
async request(url, cookie, tvApi = false) {
|
||||||
cookie = cookie ?? await this.getCookie();
|
cookie = cookie ?? await this.getCookie();
|
||||||
|
|
||||||
|
var service = this.getServiceDetails();
|
||||||
|
var slug = "";
|
||||||
|
if (url == "/home") slug = "";
|
||||||
|
else if (service == "pv") slug = "/pv";
|
||||||
|
if (tvApi) slug = "/tv";
|
||||||
|
|
||||||
var api = tvApi ? this.getTVApi() : this.source.baseUrl;
|
var api = tvApi ? this.getTVApi() : this.source.baseUrl;
|
||||||
return (await new Client().get(api + url, { "cookie": cookie })).body;
|
return (await new Client().get(api + slug + url, { "cookie": cookie })).body;
|
||||||
}
|
}
|
||||||
async getPopular(page) {
|
async getPopular(page) {
|
||||||
return await this.getPages(await this.request("/home"), ".tray-container, #top10")
|
return await this.getPages(await this.request("/home"), ".tray-container, #top10")
|
||||||
@@ -83,11 +99,12 @@ class DefaultExtension extends MProvider {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
async search(query, page, filters) {
|
async search(query, page, filters) {
|
||||||
|
var service = this.getServiceDetails();
|
||||||
const data = JSON.parse(await this.request(`/search.php?s=${query}`));
|
const data = JSON.parse(await this.request(`/search.php?s=${query}`));
|
||||||
const list = [];
|
const list = [];
|
||||||
data.searchResult.map(async (res) => {
|
data.searchResult.map(async (res) => {
|
||||||
const id = res.id;
|
const id = res.id;
|
||||||
list.push({ name: res.t, imageUrl: this.getPoster(id), link: id });
|
list.push({ name: res.t, imageUrl: this.getPoster(id, service), link: id });
|
||||||
})
|
})
|
||||||
|
|
||||||
return {
|
return {
|
||||||
@@ -96,6 +113,7 @@ class DefaultExtension extends MProvider {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
async getDetail(url) {
|
async getDetail(url) {
|
||||||
|
var service = this.getServiceDetails();
|
||||||
const cookie = await this.getCookie();
|
const cookie = await this.getCookie();
|
||||||
const data = JSON.parse(await this.request(`/post.php?id=${url}`, cookie));
|
const data = JSON.parse(await this.request(`/post.php?id=${url}`, cookie));
|
||||||
const name = data.title;
|
const name = data.title;
|
||||||
@@ -128,7 +146,7 @@ class DefaultExtension extends MProvider {
|
|||||||
}
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
name, imageUrl: this.getPoster(url), description, status: 1, genre, episodes
|
name, imageUrl: this.getPoster(url, service), description, status: 1, genre, episodes
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
async getEpisodes(name, eid, sid, page, cookie) {
|
async getEpisodes(name, eid, sid, page, cookie) {
|
||||||
@@ -160,7 +178,7 @@ class DefaultExtension extends MProvider {
|
|||||||
var sortedStreams = [];
|
var sortedStreams = [];
|
||||||
|
|
||||||
var copyStreams = streams.slice()
|
var copyStreams = streams.slice()
|
||||||
var pref = await this.getPreference("netmirror_pref_video_resolution");
|
var pref = this.getPreference("netmirror_pref_video_resolution");
|
||||||
for (var i in streams) {
|
for (var i in streams) {
|
||||||
var stream = streams[i];
|
var stream = streams[i];
|
||||||
if (stream.quality.indexOf(pref) > -1) {
|
if (stream.quality.indexOf(pref) > -1) {
|
||||||
@@ -176,9 +194,20 @@ class DefaultExtension extends MProvider {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async getVideoList(url) {
|
async getVideoList(url) {
|
||||||
const baseUrl = this.getTVApi();
|
|
||||||
const urlData = JSON.parse(url);
|
const urlData = JSON.parse(url);
|
||||||
const data = JSON.parse(await this.request(`/tv/playlist.php?id=${urlData.id}&t=${urlData.name}`, null, true));
|
var service = this.getServiceDetails()
|
||||||
|
|
||||||
|
let baseUrl = this.source.baseUrl
|
||||||
|
let isTVAPI = false;
|
||||||
|
if (service === "nf") {
|
||||||
|
baseUrl = this.getTVApi()
|
||||||
|
isTVAPI = true;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
const data = JSON.parse(await this.request(`/playlist.php?id=${urlData.id}&t=${urlData.name}`, null, isTVAPI));
|
||||||
let videoList = [];
|
let videoList = [];
|
||||||
let subtitles = [];
|
let subtitles = [];
|
||||||
let audios = [];
|
let audios = [];
|
||||||
@@ -224,13 +253,17 @@ class DefaultExtension extends MProvider {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if ("tracks" in playlist) {
|
||||||
|
playlist.tracks.filter(track => track.kind === 'captions').forEach(track => {
|
||||||
|
var subUrl = track.file
|
||||||
|
subUrl = subUrl.startsWith("//") ? `https:${subUrl}` : subUrl;
|
||||||
|
|
||||||
playlist.tracks.filter(track => track.kind === 'captions').forEach(track => {
|
subtitles.push({
|
||||||
subtitles.push({
|
label: track.label,
|
||||||
label: track.label,
|
file: subUrl
|
||||||
file: track.file
|
});
|
||||||
});
|
});
|
||||||
});
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -256,6 +289,15 @@ class DefaultExtension extends MProvider {
|
|||||||
"summary": "Homepage loads faster by not calling details API",
|
"summary": "Homepage loads faster by not calling details API",
|
||||||
"value": false
|
"value": false
|
||||||
}
|
}
|
||||||
|
}, {
|
||||||
|
key: 'netmirror_pref_service',
|
||||||
|
listPreference: {
|
||||||
|
title: 'Preferred OTT service',
|
||||||
|
summary: '',
|
||||||
|
valueIndex: 0,
|
||||||
|
entries: ["Net mirror", "Prime mirror"],
|
||||||
|
entryValues: ["nf", "pv",]
|
||||||
|
}
|
||||||
},];
|
},];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user