mirror of
https://github.com/vega-org/vega-providers.git
synced 2026-04-17 23:51:44 +00:00
renaming
This commit is contained in:
16
providers/primeMirror/catalog.ts
Normal file
16
providers/primeMirror/catalog.ts
Normal file
@@ -0,0 +1,16 @@
|
||||
export const catalog = [
|
||||
{
|
||||
title: "Home",
|
||||
filter: "/mobile/home?app=1",
|
||||
},
|
||||
{
|
||||
title: "Series",
|
||||
filter: "/mobile/series",
|
||||
},
|
||||
{
|
||||
title: "Movies",
|
||||
filter: "/mobile/movies",
|
||||
},
|
||||
];
|
||||
|
||||
export const genres = [];
|
||||
49
providers/primeMirror/episodes.ts
Normal file
49
providers/primeMirror/episodes.ts
Normal file
@@ -0,0 +1,49 @@
|
||||
import { EpisodeLink, ProviderContext } from "../types";
|
||||
|
||||
export const getEpisodes = async function ({
|
||||
url: link,
|
||||
providerContext,
|
||||
}: {
|
||||
url: string;
|
||||
providerContext: ProviderContext;
|
||||
}): Promise<EpisodeLink[]> {
|
||||
const { getBaseUrl, axios } = providerContext;
|
||||
let providerValue = "primeMirror";
|
||||
try {
|
||||
const baseUrl = await getBaseUrl("nfMirror");
|
||||
const url =
|
||||
`${baseUrl}${
|
||||
providerValue === "netflixMirror"
|
||||
? "/episodes.php?s="
|
||||
: "/pv/episodes.php?s="
|
||||
}` +
|
||||
link +
|
||||
"&t=" +
|
||||
Math.round(new Date().getTime() / 1000);
|
||||
console.log("nfEpisodesUrl", url);
|
||||
const res = await axios.get(url, {
|
||||
headers: {
|
||||
"Content-Type": "application/json",
|
||||
"User-Agent":
|
||||
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36",
|
||||
"Accept-Language": "en-US,en;q=0.9",
|
||||
},
|
||||
});
|
||||
const data = res.data;
|
||||
console.log("nfEpisodes", data);
|
||||
|
||||
const episodeList: EpisodeLink[] = [];
|
||||
|
||||
data?.episodes?.map((episode: any) => {
|
||||
episodeList.push({
|
||||
title: "Episode " + episode?.ep.replace("E", ""),
|
||||
link: episode?.id,
|
||||
});
|
||||
});
|
||||
|
||||
return episodeList;
|
||||
} catch (err) {
|
||||
console.error("nfGetEpisodes error", err);
|
||||
return [];
|
||||
}
|
||||
};
|
||||
@@ -1,16 +0,0 @@
|
||||
import {nfCatalog, nfGenresList} from '../netflixMirror/nfCatalog';
|
||||
import {nfGetPost, nfGetPostsSearch} from '../netflixMirror/nfGetPost';
|
||||
import {ProviderType} from '../types';
|
||||
import {pmGetInfo} from './pmGetInfo';
|
||||
import {pmGetStream} from './pmGetStream';
|
||||
import {pmGetEpisodes} from './pmGetEpisodes';
|
||||
|
||||
export const primeMirror: ProviderType = {
|
||||
catalog: nfCatalog,
|
||||
genres: nfGenresList,
|
||||
GetMetaData: pmGetInfo,
|
||||
GetHomePosts: nfGetPost,
|
||||
GetStream: pmGetStream,
|
||||
GetEpisodeLinks: pmGetEpisodes,
|
||||
GetSearchPosts: nfGetPostsSearch,
|
||||
};
|
||||
@@ -1,46 +1,46 @@
|
||||
import {Info, Link} from '../types';
|
||||
import { Info, Link } from "../types";
|
||||
|
||||
export const pmGetInfo = async function ({
|
||||
export const getMeta = async function ({
|
||||
link,
|
||||
}: {
|
||||
link: string;
|
||||
}): Promise<Info> {
|
||||
let providerValue = 'primeMirror';
|
||||
let providerValue = "primeMirror";
|
||||
try {
|
||||
const isPrime =
|
||||
providerValue === 'primeMirror' ? 'isPrime=true' : 'isPrime=false';
|
||||
providerValue === "primeMirror" ? "isPrime=true" : "isPrime=false";
|
||||
const url = `https://netmirror.8man.me/api/net-proxy?${isPrime}&url=${encodeURIComponent(
|
||||
link,
|
||||
link
|
||||
)}`;
|
||||
console.log('nfifo', url);
|
||||
console.log("nfifo", url);
|
||||
const res = await fetch(url, {
|
||||
credentials: 'omit',
|
||||
credentials: "omit",
|
||||
});
|
||||
const data = await res.json();
|
||||
const id = link.split('id=')[1]?.split('&')[0];
|
||||
const id = link.split("id=")[1]?.split("&")[0];
|
||||
const meta = {
|
||||
title: data.title,
|
||||
synopsis: data.desc,
|
||||
image: `https://img.nfmirrorcdn.top/poster/h/${id}.jpg`,
|
||||
cast: data?.short_cast?.split(','),
|
||||
tags: [data?.year, data?.hdsd, ...data?.thismovieis?.split(',')],
|
||||
imdbId: '',
|
||||
type: 'series',
|
||||
cast: data?.short_cast?.split(","),
|
||||
tags: [data?.year, data?.hdsd, ...data?.thismovieis?.split(",")],
|
||||
imdbId: "",
|
||||
type: "series",
|
||||
};
|
||||
console.log('nfinfo', meta);
|
||||
console.log("nfinfo", meta);
|
||||
|
||||
const linkList: Link[] = [];
|
||||
if (data?.season?.length > 0) {
|
||||
data.season.map((season: any) => {
|
||||
linkList.push({
|
||||
title: 'Season ' + season?.s,
|
||||
title: "Season " + season?.s,
|
||||
episodesLink: season?.id,
|
||||
});
|
||||
});
|
||||
} else {
|
||||
linkList.push({
|
||||
title: meta.title,
|
||||
directLinks: [{link: id, title: 'Movie', type: 'movie'}],
|
||||
directLinks: [{ link: id, title: "Movie", type: "movie" }],
|
||||
});
|
||||
}
|
||||
|
||||
@@ -52,11 +52,11 @@ export const pmGetInfo = async function ({
|
||||
} catch (err) {
|
||||
console.error(err);
|
||||
return {
|
||||
title: '',
|
||||
synopsis: '',
|
||||
image: '',
|
||||
imdbId: '',
|
||||
type: '',
|
||||
title: "",
|
||||
synopsis: "",
|
||||
image: "",
|
||||
imdbId: "",
|
||||
type: "",
|
||||
linkList: [],
|
||||
};
|
||||
}
|
||||
@@ -1,49 +0,0 @@
|
||||
import {EpisodeLink, ProviderContext} from '../types';
|
||||
|
||||
export const pmGetEpisodes = async function ({
|
||||
url: link,
|
||||
providerContext,
|
||||
}: {
|
||||
url: string;
|
||||
providerContext: ProviderContext;
|
||||
}): Promise<EpisodeLink[]> {
|
||||
const {getBaseUrl, axios} = providerContext;
|
||||
let providerValue = 'primeMirror';
|
||||
try {
|
||||
const baseUrl = await getBaseUrl('nfMirror');
|
||||
const url =
|
||||
`${baseUrl}${
|
||||
providerValue === 'netflixMirror'
|
||||
? '/episodes.php?s='
|
||||
: '/pv/episodes.php?s='
|
||||
}` +
|
||||
link +
|
||||
'&t=' +
|
||||
Math.round(new Date().getTime() / 1000);
|
||||
console.log('nfEpisodesUrl', url);
|
||||
const res = await axios.get(url, {
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
'User-Agent':
|
||||
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36',
|
||||
'Accept-Language': 'en-US,en;q=0.9',
|
||||
},
|
||||
});
|
||||
const data = res.data;
|
||||
console.log('nfEpisodes', data);
|
||||
|
||||
const episodeList: EpisodeLink[] = [];
|
||||
|
||||
data?.episodes?.map((episode: any) => {
|
||||
episodeList.push({
|
||||
title: 'Episode ' + episode?.ep.replace('E', ''),
|
||||
link: episode?.id,
|
||||
});
|
||||
});
|
||||
|
||||
return episodeList;
|
||||
} catch (err) {
|
||||
console.error('nfGetEpisodes error', err);
|
||||
return [];
|
||||
}
|
||||
};
|
||||
135
providers/primeMirror/posts.ts
Normal file
135
providers/primeMirror/posts.ts
Normal file
@@ -0,0 +1,135 @@
|
||||
import { Post, ProviderContext } from "../types";
|
||||
|
||||
export const getPosts = async function ({
|
||||
filter,
|
||||
page,
|
||||
providerValue,
|
||||
signal,
|
||||
providerContext,
|
||||
}: {
|
||||
filter: string;
|
||||
page: number;
|
||||
providerValue: string;
|
||||
signal: AbortSignal;
|
||||
providerContext: ProviderContext;
|
||||
}): Promise<Post[]> {
|
||||
try {
|
||||
const { getBaseUrl, cheerio } = providerContext;
|
||||
const baseUrl = await getBaseUrl("nfMirror");
|
||||
const catalog: Post[] = [];
|
||||
if (page > 1) {
|
||||
return [];
|
||||
}
|
||||
// console.log(filter);
|
||||
const isPrime =
|
||||
providerValue === "primeMirror" ? "isPrime=true" : "isPrime=false";
|
||||
|
||||
const url = `https://netmirror.8man.me/api/net-proxy?${isPrime}&url=${
|
||||
baseUrl + filter
|
||||
}`;
|
||||
|
||||
const res = await fetch(url, {
|
||||
signal: signal,
|
||||
method: "GET",
|
||||
credentials: "omit",
|
||||
});
|
||||
const data = await res.text();
|
||||
// console.log('nfPost', data);
|
||||
const $ = cheerio.load(data);
|
||||
$("a.post-data").map((i, element) => {
|
||||
const title = "";
|
||||
const id = $(element).attr("data-post");
|
||||
// console.log('id', id);
|
||||
const image = $(element).find("img").attr("data-src") || "";
|
||||
if (id) {
|
||||
catalog.push({
|
||||
title: title,
|
||||
link:
|
||||
baseUrl +
|
||||
`${
|
||||
providerValue === "netflixMirror"
|
||||
? "/post.php?id="
|
||||
: "/pv/post.php?id="
|
||||
}` +
|
||||
id +
|
||||
"&t=" +
|
||||
Math.round(new Date().getTime() / 1000),
|
||||
image: image,
|
||||
});
|
||||
}
|
||||
});
|
||||
// console.log(catalog);
|
||||
return catalog;
|
||||
} catch (err) {
|
||||
console.error("nf error ", err);
|
||||
return [];
|
||||
}
|
||||
};
|
||||
|
||||
export const getSearchPosts = async function ({
|
||||
searchQuery,
|
||||
page,
|
||||
providerValue,
|
||||
signal,
|
||||
providerContext,
|
||||
}: {
|
||||
searchQuery: string;
|
||||
page: number;
|
||||
providerValue: string;
|
||||
signal: AbortSignal;
|
||||
providerContext: ProviderContext;
|
||||
}): Promise<Post[]> {
|
||||
const { getBaseUrl } = providerContext;
|
||||
try {
|
||||
if (page > 1) {
|
||||
return [];
|
||||
}
|
||||
const catalog: Post[] = [];
|
||||
const baseUrl = await getBaseUrl("nfMirror");
|
||||
const isPrime =
|
||||
providerValue === "primeMirror" ? "isPrime=true" : "isPrime=false";
|
||||
|
||||
const url = `https://netmirror.8man.me/api/net-proxy?${isPrime}&url=${baseUrl}${
|
||||
providerValue === "netflixMirror" ? "" : "/pv"
|
||||
}/search.php?s=${encodeURI(searchQuery)}`;
|
||||
|
||||
const res = await fetch(url, {
|
||||
signal: signal,
|
||||
method: "GET",
|
||||
credentials: "omit",
|
||||
});
|
||||
|
||||
const data = await res.json();
|
||||
|
||||
data?.searchResult?.forEach((result: any) => {
|
||||
const title = result?.t || "";
|
||||
const id = result?.id;
|
||||
const image =
|
||||
providerValue === "netflixMirror"
|
||||
? `https://imgcdn.media/poster/v/${id}.jpg`
|
||||
: "";
|
||||
|
||||
if (id) {
|
||||
catalog.push({
|
||||
title: title,
|
||||
link:
|
||||
baseUrl +
|
||||
`${
|
||||
providerValue === "netflixMirror"
|
||||
? "/mobile/post.php?id="
|
||||
: "/mobile/pv/post.php?id="
|
||||
}` +
|
||||
id +
|
||||
"&t=" +
|
||||
Math.round(new Date().getTime() / 1000),
|
||||
image: image,
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
return catalog;
|
||||
} catch (err) {
|
||||
console.error("Search error:", err);
|
||||
return [];
|
||||
}
|
||||
};
|
||||
@@ -1,24 +1,24 @@
|
||||
import {ProviderContext, Stream} from '../types';
|
||||
import { ProviderContext, Stream } from "../types";
|
||||
|
||||
export const pmGetStream = async ({
|
||||
export const getStream = async ({
|
||||
link: id,
|
||||
providerContext,
|
||||
}: {
|
||||
link: string;
|
||||
providerContext: ProviderContext;
|
||||
}): Promise<Stream[]> => {
|
||||
const {getBaseUrl} = providerContext;
|
||||
const { getBaseUrl } = providerContext;
|
||||
try {
|
||||
let providerValue = 'primeMirror';
|
||||
const baseUrl = await getBaseUrl('nfMirror');
|
||||
let providerValue = "primeMirror";
|
||||
const baseUrl = await getBaseUrl("nfMirror");
|
||||
const url = `https://netmirror.8man.me/api/net-proxy?url=${baseUrl}${
|
||||
providerValue === 'netflixMirror'
|
||||
? '/mobile/playlist.php?id='
|
||||
: '/pv/playlist.php?id='
|
||||
providerValue === "netflixMirror"
|
||||
? "/mobile/playlist.php?id="
|
||||
: "/pv/playlist.php?id="
|
||||
}${id}&t=${Math.round(new Date().getTime() / 1000)}`;
|
||||
console.log('nfGetStream, url:', url);
|
||||
console.log("nfGetStream, url:", url);
|
||||
const res = await fetch(url, {
|
||||
credentials: 'omit',
|
||||
credentials: "omit",
|
||||
});
|
||||
const resJson = await res.json();
|
||||
const data = resJson?.[0];
|
||||
@@ -26,12 +26,12 @@ export const pmGetStream = async ({
|
||||
data?.sources.forEach((source: any) => {
|
||||
streamLinks.push({
|
||||
server: source.label,
|
||||
link: (baseUrl + source.file)?.replace(':su', ':ni'),
|
||||
type: 'm3u8',
|
||||
link: (baseUrl + source.file)?.replace(":su", ":ni"),
|
||||
type: "m3u8",
|
||||
headers: {
|
||||
Referer: baseUrl,
|
||||
origin: baseUrl,
|
||||
Cookie: 'hd=on',
|
||||
Cookie: "hd=on",
|
||||
},
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user