animob 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +674 -0
- package/README.md +245 -0
- package/animb.png +0 -0
- package/dist/extractors/index.d.ts +11 -0
- package/dist/extractors/index.js +27 -0
- package/dist/extractors/index.js.map +1 -0
- package/dist/extractors/kwik.d.ts +18 -0
- package/dist/extractors/kwik.js +117 -0
- package/dist/extractors/kwik.js.map +1 -0
- package/dist/extractors/lplayer.d.ts +11 -0
- package/dist/extractors/lplayer.js +131 -0
- package/dist/extractors/lplayer.js.map +1 -0
- package/dist/extractors/megacloud.d.ts +10 -0
- package/dist/extractors/megacloud.js +44 -0
- package/dist/extractors/megacloud.js.map +1 -0
- package/dist/extractors/megaup.d.ts +31 -0
- package/dist/extractors/megaup.js +79 -0
- package/dist/extractors/megaup.js.map +1 -0
- package/dist/extractors/mixdrop.d.ts +7 -0
- package/dist/extractors/mixdrop.js +32 -0
- package/dist/extractors/mixdrop.js.map +1 -0
- package/dist/extractors/movearnpre.d.ts +9 -0
- package/dist/extractors/movearnpre.js +154 -0
- package/dist/extractors/movearnpre.js.map +1 -0
- package/dist/extractors/sendvid.d.ts +8 -0
- package/dist/extractors/sendvid.js +76 -0
- package/dist/extractors/sendvid.js.map +1 -0
- package/dist/extractors/sibnet.d.ts +8 -0
- package/dist/extractors/sibnet.js +44 -0
- package/dist/extractors/sibnet.js.map +1 -0
- package/dist/extractors/streamsb.d.ts +11 -0
- package/dist/extractors/streamsb.js +65 -0
- package/dist/extractors/streamsb.js.map +1 -0
- package/dist/extractors/streamtape.d.ts +7 -0
- package/dist/extractors/streamtape.js +32 -0
- package/dist/extractors/streamtape.js.map +1 -0
- package/dist/extractors/streamwish.d.ts +11 -0
- package/dist/extractors/streamwish.js +46 -0
- package/dist/extractors/streamwish.js.map +1 -0
- package/dist/extractors/vidcloud.d.ts +11 -0
- package/dist/extractors/vidcloud.js +109 -0
- package/dist/extractors/vidcloud.js.map +1 -0
- package/dist/extractors/videostr.d.ts +10 -0
- package/dist/extractors/videostr.js +44 -0
- package/dist/extractors/videostr.js.map +1 -0
- package/dist/extractors/vidmoly.d.ts +7 -0
- package/dist/extractors/vidmoly.js +75 -0
- package/dist/extractors/vidmoly.js.map +1 -0
- package/dist/extractors/voe.d.ts +10 -0
- package/dist/extractors/voe.js +44 -0
- package/dist/extractors/voe.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.js +23 -0
- package/dist/index.js.map +1 -0
- package/dist/models/anime-parser.d.ts +26 -0
- package/dist/models/anime-parser.js +14 -0
- package/dist/models/anime-parser.js.map +1 -0
- package/dist/models/base-parser.d.ts +10 -0
- package/dist/models/base-parser.js +7 -0
- package/dist/models/base-parser.js.map +1 -0
- package/dist/models/base-provider.d.ts +40 -0
- package/dist/models/base-provider.js +45 -0
- package/dist/models/base-provider.js.map +1 -0
- package/dist/models/base-types.d.ts +22 -0
- package/dist/models/base-types.js +3 -0
- package/dist/models/base-types.js.map +1 -0
- package/dist/models/book-parser.d.ts +4 -0
- package/dist/models/book-parser.js +7 -0
- package/dist/models/book-parser.js.map +1 -0
- package/dist/models/comic-parser.d.ts +4 -0
- package/dist/models/comic-parser.js +7 -0
- package/dist/models/comic-parser.js.map +1 -0
- package/dist/models/index.d.ts +13 -0
- package/dist/models/index.js +39 -0
- package/dist/models/index.js.map +1 -0
- package/dist/models/lightnovel-parser.d.ts +16 -0
- package/dist/models/lightnovel-parser.js +7 -0
- package/dist/models/lightnovel-parser.js.map +1 -0
- package/dist/models/manga-parser.d.ts +17 -0
- package/dist/models/manga-parser.js +10 -0
- package/dist/models/manga-parser.js.map +1 -0
- package/dist/models/movie-parser.d.ts +26 -0
- package/dist/models/movie-parser.js +7 -0
- package/dist/models/movie-parser.js.map +1 -0
- package/dist/models/news-parser.d.ts +4 -0
- package/dist/models/news-parser.js +7 -0
- package/dist/models/news-parser.js.map +1 -0
- package/dist/models/proxy.d.ts +25 -0
- package/dist/models/proxy.js +83 -0
- package/dist/models/proxy.js.map +1 -0
- package/dist/models/type-objects.d.ts +48 -0
- package/dist/models/type-objects.js +57 -0
- package/dist/models/type-objects.js.map +1 -0
- package/dist/models/types.d.ts +515 -0
- package/dist/models/types.js +118 -0
- package/dist/models/types.js.map +1 -0
- package/dist/models/video-extractor.d.ts +19 -0
- package/dist/models/video-extractor.js +10 -0
- package/dist/models/video-extractor.js.map +1 -0
- package/dist/providers/anime/animekai.d.ts +94 -0
- package/dist/providers/anime/animekai.js +661 -0
- package/dist/providers/anime/animekai.js.map +1 -0
- package/dist/providers/anime/animepahe.d.ts +41 -0
- package/dist/providers/anime/animepahe.js +270 -0
- package/dist/providers/anime/animepahe.js.map +1 -0
- package/dist/providers/anime/animesama.d.ts +25 -0
- package/dist/providers/anime/animesama.js +504 -0
- package/dist/providers/anime/animesama.js.map +1 -0
- package/dist/providers/anime/animesaturn.d.ts +32 -0
- package/dist/providers/anime/animesaturn.js +298 -0
- package/dist/providers/anime/animesaturn.js.map +1 -0
- package/dist/providers/anime/animeunity.d.ts +27 -0
- package/dist/providers/anime/animeunity.js +157 -0
- package/dist/providers/anime/animeunity.js.map +1 -0
- package/dist/providers/anime/hianime.d.ts +150 -0
- package/dist/providers/anime/hianime.js +825 -0
- package/dist/providers/anime/hianime.js.map +1 -0
- package/dist/providers/anime/index.d.ts +17 -0
- package/dist/providers/anime/index.js +22 -0
- package/dist/providers/anime/index.js.map +1 -0
- package/dist/providers/anime/kickassanime.d.ts +65 -0
- package/dist/providers/anime/kickassanime.js +582 -0
- package/dist/providers/anime/kickassanime.js.map +1 -0
- package/dist/providers/books/index.d.ts +2 -0
- package/dist/providers/books/index.js +4 -0
- package/dist/providers/books/index.js.map +1 -0
- package/dist/providers/comics/getComics.d.ts +9 -0
- package/dist/providers/comics/getComics.js +54 -0
- package/dist/providers/comics/getComics.js.map +1 -0
- package/dist/providers/comics/index.d.ts +5 -0
- package/dist/providers/comics/index.js +8 -0
- package/dist/providers/comics/index.js.map +1 -0
- package/dist/providers/index.d.ts +9 -0
- package/dist/providers/index.js +23 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/providers/light-novels/index.d.ts +5 -0
- package/dist/providers/light-novels/index.js +8 -0
- package/dist/providers/light-novels/index.js.map +1 -0
- package/dist/providers/light-novels/novelupdates.d.ts +26 -0
- package/dist/providers/light-novels/novelupdates.js +155 -0
- package/dist/providers/light-novels/novelupdates.js.map +1 -0
- package/dist/providers/manga/asurascans.d.ts +16 -0
- package/dist/providers/manga/asurascans.js +143 -0
- package/dist/providers/manga/asurascans.js.map +1 -0
- package/dist/providers/manga/comick.d.ts +36 -0
- package/dist/providers/manga/comick.js +141 -0
- package/dist/providers/manga/comick.js.map +1 -0
- package/dist/providers/manga/comix.d.ts +36 -0
- package/dist/providers/manga/comix.js +265 -0
- package/dist/providers/manga/comix.js.map +1 -0
- package/dist/providers/manga/index.d.ts +21 -0
- package/dist/providers/manga/index.js +26 -0
- package/dist/providers/manga/index.js.map +1 -0
- package/dist/providers/manga/mangadex.d.ts +26 -0
- package/dist/providers/manga/mangadex.js +301 -0
- package/dist/providers/manga/mangadex.js.map +1 -0
- package/dist/providers/manga/mangahere.d.ts +29 -0
- package/dist/providers/manga/mangahere.js +376 -0
- package/dist/providers/manga/mangahere.js.map +1 -0
- package/dist/providers/manga/mangakakalot.d.ts +56 -0
- package/dist/providers/manga/mangakakalot.js +461 -0
- package/dist/providers/manga/mangakakalot.js.map +1 -0
- package/dist/providers/manga/mangapill.d.ts +15 -0
- package/dist/providers/manga/mangapill.js +104 -0
- package/dist/providers/manga/mangapill.js.map +1 -0
- package/dist/providers/manga/mangareader.d.ts +15 -0
- package/dist/providers/manga/mangareader.js +110 -0
- package/dist/providers/manga/mangareader.js.map +1 -0
- package/dist/providers/manga/weebcentral.d.ts +12 -0
- package/dist/providers/manga/weebcentral.js +169 -0
- package/dist/providers/manga/weebcentral.js.map +1 -0
- package/dist/providers/meta/anilist.d.ts +206 -0
- package/dist/providers/meta/anilist.js +2025 -0
- package/dist/providers/meta/anilist.js.map +1 -0
- package/dist/providers/meta/index.d.ts +9 -0
- package/dist/providers/meta/index.js +10 -0
- package/dist/providers/meta/index.js.map +1 -0
- package/dist/providers/meta/mal.d.ts +39 -0
- package/dist/providers/meta/mal.js +529 -0
- package/dist/providers/meta/mal.js.map +1 -0
- package/dist/providers/meta/tmdb.d.ts +48 -0
- package/dist/providers/meta/tmdb.js +364 -0
- package/dist/providers/meta/tmdb.js.map +1 -0
- package/dist/providers/movies/dramacool.d.ts +98 -0
- package/dist/providers/movies/dramacool.js +367 -0
- package/dist/providers/movies/dramacool.js.map +1 -0
- package/dist/providers/movies/flixhq.d.ts +90 -0
- package/dist/providers/movies/flixhq.js +438 -0
- package/dist/providers/movies/flixhq.js.map +1 -0
- package/dist/providers/movies/goku.d.ts +80 -0
- package/dist/providers/movies/goku.js +369 -0
- package/dist/providers/movies/goku.js.map +1 -0
- package/dist/providers/movies/himovies.d.ts +102 -0
- package/dist/providers/movies/himovies.js +445 -0
- package/dist/providers/movies/himovies.js.map +1 -0
- package/dist/providers/movies/index.d.ts +17 -0
- package/dist/providers/movies/index.js +22 -0
- package/dist/providers/movies/index.js.map +1 -0
- package/dist/providers/movies/netmirror.d.ts +27 -0
- package/dist/providers/movies/netmirror.js +259 -0
- package/dist/providers/movies/netmirror.js.map +1 -0
- package/dist/providers/movies/sflix.d.ts +106 -0
- package/dist/providers/movies/sflix.js +490 -0
- package/dist/providers/movies/sflix.js.map +1 -0
- package/dist/providers/movies/turkish123.d.ts +32 -0
- package/dist/providers/movies/turkish123.js +141 -0
- package/dist/providers/movies/turkish123.js.map +1 -0
- package/dist/providers/news/animenewsnetwork.d.ts +30 -0
- package/dist/providers/news/animenewsnetwork.js +105 -0
- package/dist/providers/news/animenewsnetwork.js.map +1 -0
- package/dist/providers/news/index.d.ts +5 -0
- package/dist/providers/news/index.js +8 -0
- package/dist/providers/news/index.js.map +1 -0
- package/dist/providers/others/index.d.ts +0 -0
- package/dist/providers/others/index.js +2 -0
- package/dist/providers/others/index.js.map +1 -0
- package/dist/utils/index.d.ts +3 -0
- package/dist/utils/index.js +33 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/providers-list.d.ts +11 -0
- package/dist/utils/providers-list.js +40 -0
- package/dist/utils/providers-list.js.map +1 -0
- package/dist/utils/queries.d.ts +13 -0
- package/dist/utils/queries.js +31 -0
- package/dist/utils/queries.js.map +1 -0
- package/dist/utils/utils.d.ts +32 -0
- package/dist/utils/utils.js +324 -0
- package/dist/utils/utils.js.map +1 -0
- package/package.json +107 -0
|
@@ -0,0 +1,259 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const models_1 = require("../../models");
|
|
4
|
+
var NetMirrorOTT;
|
|
5
|
+
(function (NetMirrorOTT) {
|
|
6
|
+
NetMirrorOTT["NETFLIX"] = "nf";
|
|
7
|
+
NetMirrorOTT["PRIME"] = "pv";
|
|
8
|
+
NetMirrorOTT["DISNEY"] = "dp";
|
|
9
|
+
NetMirrorOTT["LIONSGATE"] = "lg";
|
|
10
|
+
})(NetMirrorOTT || (NetMirrorOTT = {}));
|
|
11
|
+
class NetMirror extends models_1.MovieParser {
|
|
12
|
+
constructor() {
|
|
13
|
+
super(...arguments);
|
|
14
|
+
this.name = 'NetMirror';
|
|
15
|
+
this.baseUrl = 'https://net20.cc';
|
|
16
|
+
this.logo = 'https://net20.cc/img/nf2/icon_x192.png';
|
|
17
|
+
this.classPath = 'MOVIES.NetMirror';
|
|
18
|
+
this.supportedTypes = new Set([models_1.TvType.MOVIE, models_1.TvType.TVSERIES]);
|
|
19
|
+
this.ott = NetMirrorOTT.NETFLIX;
|
|
20
|
+
this.headers = {
|
|
21
|
+
'X-Requested-With': 'XMLHttpRequest',
|
|
22
|
+
Referer: `${this.baseUrl}/home`,
|
|
23
|
+
};
|
|
24
|
+
this.search = async (query, page = 1) => {
|
|
25
|
+
try {
|
|
26
|
+
const { data } = await this.client.get(`${this.baseUrl}/search.php?s=${encodeURIComponent(query)}&t=x`, {
|
|
27
|
+
headers: {
|
|
28
|
+
...this.headers,
|
|
29
|
+
Cookie: await this.getCookies(),
|
|
30
|
+
},
|
|
31
|
+
});
|
|
32
|
+
if (!data.searchResult || !Array.isArray(data.searchResult)) {
|
|
33
|
+
return { currentPage: page, hasNextPage: false, results: [] };
|
|
34
|
+
}
|
|
35
|
+
const results = data.searchResult.map(item => ({
|
|
36
|
+
id: item.id,
|
|
37
|
+
title: item.t,
|
|
38
|
+
image: `https://imgcdn.kim/poster/342/${item.id}.jpg`,
|
|
39
|
+
type: models_1.TvType.MOVIE,
|
|
40
|
+
}));
|
|
41
|
+
return {
|
|
42
|
+
currentPage: page,
|
|
43
|
+
hasNextPage: false,
|
|
44
|
+
results,
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
catch (err) {
|
|
48
|
+
throw new Error(`NetMirror search failed: ${err.message}`);
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
this.fetchPostData = async (id) => {
|
|
52
|
+
try {
|
|
53
|
+
const { data } = await this.client.get(`${this.baseUrl}/post.php?id=${id}&t=x`, {
|
|
54
|
+
headers: {
|
|
55
|
+
...this.headers,
|
|
56
|
+
Cookie: await this.getCookies(),
|
|
57
|
+
},
|
|
58
|
+
});
|
|
59
|
+
return data;
|
|
60
|
+
}
|
|
61
|
+
catch (err) {
|
|
62
|
+
throw new Error(`NetMirror fetchPostData failed: ${err.message}`);
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
this.fetchMediaInfo = async (mediaId) => {
|
|
66
|
+
var _a;
|
|
67
|
+
try {
|
|
68
|
+
const postData = await this.fetchPostData(mediaId);
|
|
69
|
+
const isTvShow = postData.type === 't';
|
|
70
|
+
const movieInfo = {
|
|
71
|
+
id: mediaId,
|
|
72
|
+
title: postData.title || '',
|
|
73
|
+
type: isTvShow ? models_1.TvType.TVSERIES : models_1.TvType.MOVIE,
|
|
74
|
+
image: `https://imgcdn.kim/poster/780/${mediaId}.jpg`,
|
|
75
|
+
cover: `https://imgcdn.kim/poster/1920/${mediaId}.jpg`,
|
|
76
|
+
genres: ((_a = postData.genre) === null || _a === void 0 ? void 0 : _a.split(',').map(g => g.trim())) || [],
|
|
77
|
+
duration: postData.runtime,
|
|
78
|
+
description: postData.desc || postData.m_desc || '',
|
|
79
|
+
// rating is a string in the response, but IMovieInfo expects a number.
|
|
80
|
+
// We'll leave it undefined since we can't convert it reliably.
|
|
81
|
+
rating: undefined,
|
|
82
|
+
year: postData.year || undefined,
|
|
83
|
+
};
|
|
84
|
+
// Handle episodes for TV shows
|
|
85
|
+
if (isTvShow) {
|
|
86
|
+
// Check if episodes array exists and has valid entries
|
|
87
|
+
if (postData.episodes && postData.episodes.length > 0 && postData.episodes[0] !== null) {
|
|
88
|
+
movieInfo.episodes = postData.episodes.map(ep => ({
|
|
89
|
+
id: ep.id,
|
|
90
|
+
title: ep.t,
|
|
91
|
+
number: parseInt(ep.ep),
|
|
92
|
+
season: parseInt(ep.s.replace('S', '')),
|
|
93
|
+
description: ep.ep_desc,
|
|
94
|
+
duration: ep.time,
|
|
95
|
+
}));
|
|
96
|
+
}
|
|
97
|
+
else if (postData.season && postData.season.length > 0) {
|
|
98
|
+
// Fallback: Create episodes based on seasons if episodes array is empty
|
|
99
|
+
movieInfo.episodes = postData.season.flatMap(season => {
|
|
100
|
+
const episodes = [];
|
|
101
|
+
for (let i = 1; i <= parseInt(season.ep); i++) {
|
|
102
|
+
episodes.push({
|
|
103
|
+
id: season.id,
|
|
104
|
+
title: `Season ${season.s} Episode ${i}`,
|
|
105
|
+
number: i,
|
|
106
|
+
season: parseInt(season.s),
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
return episodes;
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
else {
|
|
113
|
+
// Fallback: Single episode for the entire show
|
|
114
|
+
movieInfo.episodes = [
|
|
115
|
+
{
|
|
116
|
+
id: mediaId,
|
|
117
|
+
title: 'Full Content',
|
|
118
|
+
},
|
|
119
|
+
];
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
else {
|
|
123
|
+
// Handle movies
|
|
124
|
+
movieInfo.episodes = [
|
|
125
|
+
{
|
|
126
|
+
id: mediaId,
|
|
127
|
+
title: postData.title || 'Full Movie',
|
|
128
|
+
},
|
|
129
|
+
];
|
|
130
|
+
}
|
|
131
|
+
return movieInfo;
|
|
132
|
+
}
|
|
133
|
+
catch (err) {
|
|
134
|
+
throw new Error(`NetMirror fetchMediaInfo failed: ${err.message}`);
|
|
135
|
+
}
|
|
136
|
+
};
|
|
137
|
+
this.fetchEpisodeServers = async (episodeId, mediaId) => {
|
|
138
|
+
return [
|
|
139
|
+
{
|
|
140
|
+
name: 'NetMirror',
|
|
141
|
+
url: `${this.baseUrl}/playlist.php?id=${episodeId}`,
|
|
142
|
+
},
|
|
143
|
+
];
|
|
144
|
+
};
|
|
145
|
+
this.fetchEpisodeSources = async (episodeId, mediaId) => {
|
|
146
|
+
var _a;
|
|
147
|
+
try {
|
|
148
|
+
const { data } = await this.client.get(`${this.baseUrl}/playlist.php?id=${episodeId}&t=Video&tm=${Date.now()}`, {
|
|
149
|
+
headers: {
|
|
150
|
+
...this.headers,
|
|
151
|
+
Cookie: await this.getCookies(),
|
|
152
|
+
},
|
|
153
|
+
});
|
|
154
|
+
if (!data || !Array.isArray(data) || data.length === 0) {
|
|
155
|
+
throw new Error('No playlist data received');
|
|
156
|
+
}
|
|
157
|
+
const playlist = data[0];
|
|
158
|
+
if (!playlist.sources || !Array.isArray(playlist.sources)) {
|
|
159
|
+
throw new Error('No sources in playlist');
|
|
160
|
+
}
|
|
161
|
+
const sources = playlist.sources.map(s => {
|
|
162
|
+
let quality = '480p';
|
|
163
|
+
if (s.label === 'Full HD')
|
|
164
|
+
quality = '1080p';
|
|
165
|
+
else if (s.label === 'Mid HD')
|
|
166
|
+
quality = '720p';
|
|
167
|
+
else if (s.label === 'Low HD')
|
|
168
|
+
quality = '480p';
|
|
169
|
+
return {
|
|
170
|
+
url: `${this.baseUrl}${s.file}`,
|
|
171
|
+
quality,
|
|
172
|
+
isM3U8: true,
|
|
173
|
+
};
|
|
174
|
+
});
|
|
175
|
+
const subtitles = (_a = playlist.tracks) === null || _a === void 0 ? void 0 : _a.filter(t => t.kind === 'captions').map(t => ({
|
|
176
|
+
url: t.file.startsWith('//') ? `https:${t.file}` : t.file,
|
|
177
|
+
lang: t.label || t.language || 'Unknown',
|
|
178
|
+
}));
|
|
179
|
+
return {
|
|
180
|
+
headers: { Referer: `${this.baseUrl}/` },
|
|
181
|
+
sources,
|
|
182
|
+
subtitles,
|
|
183
|
+
};
|
|
184
|
+
}
|
|
185
|
+
catch (err) {
|
|
186
|
+
throw new Error(`NetMirror fetchEpisodeSources failed: ${err.message}`);
|
|
187
|
+
}
|
|
188
|
+
};
|
|
189
|
+
this.fetchHlsPlaylist = async (episodeId) => {
|
|
190
|
+
try {
|
|
191
|
+
const { data } = await this.client.get(`${this.baseUrl}/hls/${episodeId}`, {
|
|
192
|
+
headers: {
|
|
193
|
+
...this.headers,
|
|
194
|
+
Cookie: await this.getCookies(),
|
|
195
|
+
},
|
|
196
|
+
});
|
|
197
|
+
return data;
|
|
198
|
+
}
|
|
199
|
+
catch (err) {
|
|
200
|
+
throw new Error(`NetMirror fetchHlsPlaylist failed: ${err.message}`);
|
|
201
|
+
}
|
|
202
|
+
};
|
|
203
|
+
this.fetchRecentMovies = async () => {
|
|
204
|
+
try {
|
|
205
|
+
const data = await this.search('new');
|
|
206
|
+
return data.results;
|
|
207
|
+
}
|
|
208
|
+
catch (err) {
|
|
209
|
+
throw new Error(`NetMirror fetchRecentMovies failed: ${err.message}`);
|
|
210
|
+
}
|
|
211
|
+
};
|
|
212
|
+
this.fetchTrendingMovies = async () => {
|
|
213
|
+
try {
|
|
214
|
+
// Fetch recent movies as a fallback for trending content
|
|
215
|
+
const { data } = await this.client.get(`${this.baseUrl}/search.php?s=new&t=x`, {
|
|
216
|
+
headers: {
|
|
217
|
+
...this.headers,
|
|
218
|
+
Cookie: await this.getCookies(),
|
|
219
|
+
},
|
|
220
|
+
});
|
|
221
|
+
if (!data.searchResult || !Array.isArray(data.searchResult)) {
|
|
222
|
+
return [];
|
|
223
|
+
}
|
|
224
|
+
// Return the first 10 results as trending
|
|
225
|
+
return data.searchResult.slice(0, 10).map(item => ({
|
|
226
|
+
id: item.id,
|
|
227
|
+
title: item.t,
|
|
228
|
+
image: `https://imgcdn.kim/poster/342/${item.id}.jpg`,
|
|
229
|
+
type: models_1.TvType.MOVIE,
|
|
230
|
+
}));
|
|
231
|
+
}
|
|
232
|
+
catch (err) {
|
|
233
|
+
throw new Error(`NetMirror fetchTrendingMovies failed: ${err.message}`);
|
|
234
|
+
}
|
|
235
|
+
};
|
|
236
|
+
}
|
|
237
|
+
setOTT(provider) {
|
|
238
|
+
this.ott = provider;
|
|
239
|
+
}
|
|
240
|
+
async getCookies() {
|
|
241
|
+
const res = await fetch(this.baseUrl + '/p.php', {
|
|
242
|
+
method: 'POST',
|
|
243
|
+
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
|
|
244
|
+
body: 'init=1',
|
|
245
|
+
});
|
|
246
|
+
const setCookie = res.headers.get('set-cookie');
|
|
247
|
+
if (!setCookie)
|
|
248
|
+
throw new Error('No Set-Cookie header found');
|
|
249
|
+
// Define the hardcoded t_hash_t as requested
|
|
250
|
+
const t_hash_t = '988a734da1152ddea2c25c8904eede20%3A%3A0cb4f3935641c828678b8946867997e5%3A%3A1768993531%3A%3Ani';
|
|
251
|
+
// Extract t_hash from the p.php response
|
|
252
|
+
const tHashMatch = /t_hash=([^;]+)/.exec(setCookie);
|
|
253
|
+
const t_hash = tHashMatch ? tHashMatch[1] : '';
|
|
254
|
+
// Return the combined string using the hardcoded t_hash_t and the fetched t_hash
|
|
255
|
+
return `t_hash_t=${t_hash_t}; t_hash=${t_hash}; ott=${this.ott}`;
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
exports.default = NetMirror;
|
|
259
|
+
//# sourceMappingURL=netmirror.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"netmirror.js","sourceRoot":"","sources":["../../../src/providers/movies/netmirror.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { MovieParser, TvType, IMovieInfo, IEpisodeServer, StreamingServers, ISource, IMovieResult, ISearch } from '../../models';
|
|
2
|
+
declare class SFlix extends MovieParser {
|
|
3
|
+
readonly name = "SFlix";
|
|
4
|
+
protected baseUrl: string;
|
|
5
|
+
protected logo: string;
|
|
6
|
+
protected classPath: string;
|
|
7
|
+
supportedTypes: Set<TvType>;
|
|
8
|
+
private static readonly NAV_SELECTOR;
|
|
9
|
+
/**
|
|
10
|
+
* Search for movies or TV shows
|
|
11
|
+
* @param query search query string
|
|
12
|
+
* @param page page number (default: 1)
|
|
13
|
+
*/
|
|
14
|
+
search: (query: string, page?: number) => Promise<ISearch<IMovieResult>>;
|
|
15
|
+
/**
|
|
16
|
+
* Fetch detailed media information
|
|
17
|
+
* @param mediaId media link or id
|
|
18
|
+
*/
|
|
19
|
+
fetchMediaInfo: (mediaId: string) => Promise<IMovieInfo>;
|
|
20
|
+
/**
|
|
21
|
+
* Fetch available episode servers
|
|
22
|
+
* @param episodeId episode link or movie id
|
|
23
|
+
* @param mediaId movie link or id
|
|
24
|
+
*/
|
|
25
|
+
fetchEpisodeServers: (episodeId: string, mediaId: string) => Promise<IEpisodeServer[]>;
|
|
26
|
+
/**
|
|
27
|
+
* Fetch episode sources from a specific server
|
|
28
|
+
* @param episodeId episode id or URL
|
|
29
|
+
* @param mediaId media id
|
|
30
|
+
* @param server streaming server type (default: UpCloud)
|
|
31
|
+
*/
|
|
32
|
+
fetchEpisodeSources: (episodeId: string, mediaId: string, server?: StreamingServers) => Promise<ISource>;
|
|
33
|
+
/**
|
|
34
|
+
* Fetch recent movies
|
|
35
|
+
*/
|
|
36
|
+
fetchRecentMovies: () => Promise<IMovieResult[]>;
|
|
37
|
+
/**
|
|
38
|
+
* Fetch recent TV shows
|
|
39
|
+
*/
|
|
40
|
+
fetchRecentTvShows: () => Promise<IMovieResult[]>;
|
|
41
|
+
/**
|
|
42
|
+
* Fetch trending movies
|
|
43
|
+
*/
|
|
44
|
+
fetchTrendingMovies: () => Promise<IMovieResult[]>;
|
|
45
|
+
/**
|
|
46
|
+
* Fetch trending TV shows
|
|
47
|
+
*/
|
|
48
|
+
fetchTrendingTvShows: () => Promise<IMovieResult[]>;
|
|
49
|
+
/**
|
|
50
|
+
* Fetch content by country
|
|
51
|
+
* @param country country name
|
|
52
|
+
* @param page page number (default: 1)
|
|
53
|
+
*/
|
|
54
|
+
fetchByCountry: (country: string, page?: number) => Promise<ISearch<IMovieResult>>;
|
|
55
|
+
/**
|
|
56
|
+
* Fetch content by genre
|
|
57
|
+
* @param genre genre name
|
|
58
|
+
* @param page page number (default: 1)
|
|
59
|
+
*/
|
|
60
|
+
fetchByGenre: (genre: string, page?: number) => Promise<ISearch<IMovieResult>>;
|
|
61
|
+
/**
|
|
62
|
+
* Fetch spotlight/featured content
|
|
63
|
+
*/
|
|
64
|
+
fetchSpotlight: () => Promise<ISearch<IMovieResult>>;
|
|
65
|
+
/**
|
|
66
|
+
* Fetch TV series episodes for all seasons
|
|
67
|
+
* @param uid unique identifier
|
|
68
|
+
*/
|
|
69
|
+
private fetchTvSeriesEpisodes;
|
|
70
|
+
/**
|
|
71
|
+
* Parse recommendations from media info page
|
|
72
|
+
* @param $ cheerio instance
|
|
73
|
+
*/
|
|
74
|
+
private parseRecommendations;
|
|
75
|
+
/**
|
|
76
|
+
* Fetch content from home page by section title
|
|
77
|
+
* @param sectionTitle section title to search for
|
|
78
|
+
* @param isTvShow whether content is TV shows
|
|
79
|
+
*/
|
|
80
|
+
private fetchHomeSection;
|
|
81
|
+
/**
|
|
82
|
+
* Fetch content from home page by div ID
|
|
83
|
+
* @param divId div ID to search for
|
|
84
|
+
* @param isTvShow whether content is TV shows
|
|
85
|
+
*/
|
|
86
|
+
private fetchHomeSectionById;
|
|
87
|
+
/**
|
|
88
|
+
* Fetch content by filter (genre or country)
|
|
89
|
+
* @param filterType filter type (genre or country)
|
|
90
|
+
* @param filterValue filter value
|
|
91
|
+
* @param page page number
|
|
92
|
+
*/
|
|
93
|
+
private fetchByFilter;
|
|
94
|
+
/**
|
|
95
|
+
* Extract sources from streaming server
|
|
96
|
+
* @param episodeUrl episode URL
|
|
97
|
+
* @param server streaming server type
|
|
98
|
+
*/
|
|
99
|
+
private extractFromServer;
|
|
100
|
+
/**
|
|
101
|
+
* Parse media type from text
|
|
102
|
+
* @param typeText type text to parse
|
|
103
|
+
*/
|
|
104
|
+
private parseMediaType;
|
|
105
|
+
}
|
|
106
|
+
export default SFlix;
|