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.
Files changed (229) hide show
  1. package/LICENSE +674 -0
  2. package/README.md +245 -0
  3. package/animb.png +0 -0
  4. package/dist/extractors/index.d.ts +11 -0
  5. package/dist/extractors/index.js +27 -0
  6. package/dist/extractors/index.js.map +1 -0
  7. package/dist/extractors/kwik.d.ts +18 -0
  8. package/dist/extractors/kwik.js +117 -0
  9. package/dist/extractors/kwik.js.map +1 -0
  10. package/dist/extractors/lplayer.d.ts +11 -0
  11. package/dist/extractors/lplayer.js +131 -0
  12. package/dist/extractors/lplayer.js.map +1 -0
  13. package/dist/extractors/megacloud.d.ts +10 -0
  14. package/dist/extractors/megacloud.js +44 -0
  15. package/dist/extractors/megacloud.js.map +1 -0
  16. package/dist/extractors/megaup.d.ts +31 -0
  17. package/dist/extractors/megaup.js +79 -0
  18. package/dist/extractors/megaup.js.map +1 -0
  19. package/dist/extractors/mixdrop.d.ts +7 -0
  20. package/dist/extractors/mixdrop.js +32 -0
  21. package/dist/extractors/mixdrop.js.map +1 -0
  22. package/dist/extractors/movearnpre.d.ts +9 -0
  23. package/dist/extractors/movearnpre.js +154 -0
  24. package/dist/extractors/movearnpre.js.map +1 -0
  25. package/dist/extractors/sendvid.d.ts +8 -0
  26. package/dist/extractors/sendvid.js +76 -0
  27. package/dist/extractors/sendvid.js.map +1 -0
  28. package/dist/extractors/sibnet.d.ts +8 -0
  29. package/dist/extractors/sibnet.js +44 -0
  30. package/dist/extractors/sibnet.js.map +1 -0
  31. package/dist/extractors/streamsb.d.ts +11 -0
  32. package/dist/extractors/streamsb.js +65 -0
  33. package/dist/extractors/streamsb.js.map +1 -0
  34. package/dist/extractors/streamtape.d.ts +7 -0
  35. package/dist/extractors/streamtape.js +32 -0
  36. package/dist/extractors/streamtape.js.map +1 -0
  37. package/dist/extractors/streamwish.d.ts +11 -0
  38. package/dist/extractors/streamwish.js +46 -0
  39. package/dist/extractors/streamwish.js.map +1 -0
  40. package/dist/extractors/vidcloud.d.ts +11 -0
  41. package/dist/extractors/vidcloud.js +109 -0
  42. package/dist/extractors/vidcloud.js.map +1 -0
  43. package/dist/extractors/videostr.d.ts +10 -0
  44. package/dist/extractors/videostr.js +44 -0
  45. package/dist/extractors/videostr.js.map +1 -0
  46. package/dist/extractors/vidmoly.d.ts +7 -0
  47. package/dist/extractors/vidmoly.js +75 -0
  48. package/dist/extractors/vidmoly.js.map +1 -0
  49. package/dist/extractors/voe.d.ts +10 -0
  50. package/dist/extractors/voe.js +44 -0
  51. package/dist/extractors/voe.js.map +1 -0
  52. package/dist/index.d.ts +6 -0
  53. package/dist/index.js +23 -0
  54. package/dist/index.js.map +1 -0
  55. package/dist/models/anime-parser.d.ts +26 -0
  56. package/dist/models/anime-parser.js +14 -0
  57. package/dist/models/anime-parser.js.map +1 -0
  58. package/dist/models/base-parser.d.ts +10 -0
  59. package/dist/models/base-parser.js +7 -0
  60. package/dist/models/base-parser.js.map +1 -0
  61. package/dist/models/base-provider.d.ts +40 -0
  62. package/dist/models/base-provider.js +45 -0
  63. package/dist/models/base-provider.js.map +1 -0
  64. package/dist/models/base-types.d.ts +22 -0
  65. package/dist/models/base-types.js +3 -0
  66. package/dist/models/base-types.js.map +1 -0
  67. package/dist/models/book-parser.d.ts +4 -0
  68. package/dist/models/book-parser.js +7 -0
  69. package/dist/models/book-parser.js.map +1 -0
  70. package/dist/models/comic-parser.d.ts +4 -0
  71. package/dist/models/comic-parser.js +7 -0
  72. package/dist/models/comic-parser.js.map +1 -0
  73. package/dist/models/index.d.ts +13 -0
  74. package/dist/models/index.js +39 -0
  75. package/dist/models/index.js.map +1 -0
  76. package/dist/models/lightnovel-parser.d.ts +16 -0
  77. package/dist/models/lightnovel-parser.js +7 -0
  78. package/dist/models/lightnovel-parser.js.map +1 -0
  79. package/dist/models/manga-parser.d.ts +17 -0
  80. package/dist/models/manga-parser.js +10 -0
  81. package/dist/models/manga-parser.js.map +1 -0
  82. package/dist/models/movie-parser.d.ts +26 -0
  83. package/dist/models/movie-parser.js +7 -0
  84. package/dist/models/movie-parser.js.map +1 -0
  85. package/dist/models/news-parser.d.ts +4 -0
  86. package/dist/models/news-parser.js +7 -0
  87. package/dist/models/news-parser.js.map +1 -0
  88. package/dist/models/proxy.d.ts +25 -0
  89. package/dist/models/proxy.js +83 -0
  90. package/dist/models/proxy.js.map +1 -0
  91. package/dist/models/type-objects.d.ts +48 -0
  92. package/dist/models/type-objects.js +57 -0
  93. package/dist/models/type-objects.js.map +1 -0
  94. package/dist/models/types.d.ts +515 -0
  95. package/dist/models/types.js +118 -0
  96. package/dist/models/types.js.map +1 -0
  97. package/dist/models/video-extractor.d.ts +19 -0
  98. package/dist/models/video-extractor.js +10 -0
  99. package/dist/models/video-extractor.js.map +1 -0
  100. package/dist/providers/anime/animekai.d.ts +94 -0
  101. package/dist/providers/anime/animekai.js +661 -0
  102. package/dist/providers/anime/animekai.js.map +1 -0
  103. package/dist/providers/anime/animepahe.d.ts +41 -0
  104. package/dist/providers/anime/animepahe.js +270 -0
  105. package/dist/providers/anime/animepahe.js.map +1 -0
  106. package/dist/providers/anime/animesama.d.ts +25 -0
  107. package/dist/providers/anime/animesama.js +504 -0
  108. package/dist/providers/anime/animesama.js.map +1 -0
  109. package/dist/providers/anime/animesaturn.d.ts +32 -0
  110. package/dist/providers/anime/animesaturn.js +298 -0
  111. package/dist/providers/anime/animesaturn.js.map +1 -0
  112. package/dist/providers/anime/animeunity.d.ts +27 -0
  113. package/dist/providers/anime/animeunity.js +157 -0
  114. package/dist/providers/anime/animeunity.js.map +1 -0
  115. package/dist/providers/anime/hianime.d.ts +150 -0
  116. package/dist/providers/anime/hianime.js +825 -0
  117. package/dist/providers/anime/hianime.js.map +1 -0
  118. package/dist/providers/anime/index.d.ts +17 -0
  119. package/dist/providers/anime/index.js +22 -0
  120. package/dist/providers/anime/index.js.map +1 -0
  121. package/dist/providers/anime/kickassanime.d.ts +65 -0
  122. package/dist/providers/anime/kickassanime.js +582 -0
  123. package/dist/providers/anime/kickassanime.js.map +1 -0
  124. package/dist/providers/books/index.d.ts +2 -0
  125. package/dist/providers/books/index.js +4 -0
  126. package/dist/providers/books/index.js.map +1 -0
  127. package/dist/providers/comics/getComics.d.ts +9 -0
  128. package/dist/providers/comics/getComics.js +54 -0
  129. package/dist/providers/comics/getComics.js.map +1 -0
  130. package/dist/providers/comics/index.d.ts +5 -0
  131. package/dist/providers/comics/index.js +8 -0
  132. package/dist/providers/comics/index.js.map +1 -0
  133. package/dist/providers/index.d.ts +9 -0
  134. package/dist/providers/index.js +23 -0
  135. package/dist/providers/index.js.map +1 -0
  136. package/dist/providers/light-novels/index.d.ts +5 -0
  137. package/dist/providers/light-novels/index.js +8 -0
  138. package/dist/providers/light-novels/index.js.map +1 -0
  139. package/dist/providers/light-novels/novelupdates.d.ts +26 -0
  140. package/dist/providers/light-novels/novelupdates.js +155 -0
  141. package/dist/providers/light-novels/novelupdates.js.map +1 -0
  142. package/dist/providers/manga/asurascans.d.ts +16 -0
  143. package/dist/providers/manga/asurascans.js +143 -0
  144. package/dist/providers/manga/asurascans.js.map +1 -0
  145. package/dist/providers/manga/comick.d.ts +36 -0
  146. package/dist/providers/manga/comick.js +141 -0
  147. package/dist/providers/manga/comick.js.map +1 -0
  148. package/dist/providers/manga/comix.d.ts +36 -0
  149. package/dist/providers/manga/comix.js +265 -0
  150. package/dist/providers/manga/comix.js.map +1 -0
  151. package/dist/providers/manga/index.d.ts +21 -0
  152. package/dist/providers/manga/index.js +26 -0
  153. package/dist/providers/manga/index.js.map +1 -0
  154. package/dist/providers/manga/mangadex.d.ts +26 -0
  155. package/dist/providers/manga/mangadex.js +301 -0
  156. package/dist/providers/manga/mangadex.js.map +1 -0
  157. package/dist/providers/manga/mangahere.d.ts +29 -0
  158. package/dist/providers/manga/mangahere.js +376 -0
  159. package/dist/providers/manga/mangahere.js.map +1 -0
  160. package/dist/providers/manga/mangakakalot.d.ts +56 -0
  161. package/dist/providers/manga/mangakakalot.js +461 -0
  162. package/dist/providers/manga/mangakakalot.js.map +1 -0
  163. package/dist/providers/manga/mangapill.d.ts +15 -0
  164. package/dist/providers/manga/mangapill.js +104 -0
  165. package/dist/providers/manga/mangapill.js.map +1 -0
  166. package/dist/providers/manga/mangareader.d.ts +15 -0
  167. package/dist/providers/manga/mangareader.js +110 -0
  168. package/dist/providers/manga/mangareader.js.map +1 -0
  169. package/dist/providers/manga/weebcentral.d.ts +12 -0
  170. package/dist/providers/manga/weebcentral.js +169 -0
  171. package/dist/providers/manga/weebcentral.js.map +1 -0
  172. package/dist/providers/meta/anilist.d.ts +206 -0
  173. package/dist/providers/meta/anilist.js +2025 -0
  174. package/dist/providers/meta/anilist.js.map +1 -0
  175. package/dist/providers/meta/index.d.ts +9 -0
  176. package/dist/providers/meta/index.js +10 -0
  177. package/dist/providers/meta/index.js.map +1 -0
  178. package/dist/providers/meta/mal.d.ts +39 -0
  179. package/dist/providers/meta/mal.js +529 -0
  180. package/dist/providers/meta/mal.js.map +1 -0
  181. package/dist/providers/meta/tmdb.d.ts +48 -0
  182. package/dist/providers/meta/tmdb.js +364 -0
  183. package/dist/providers/meta/tmdb.js.map +1 -0
  184. package/dist/providers/movies/dramacool.d.ts +98 -0
  185. package/dist/providers/movies/dramacool.js +367 -0
  186. package/dist/providers/movies/dramacool.js.map +1 -0
  187. package/dist/providers/movies/flixhq.d.ts +90 -0
  188. package/dist/providers/movies/flixhq.js +438 -0
  189. package/dist/providers/movies/flixhq.js.map +1 -0
  190. package/dist/providers/movies/goku.d.ts +80 -0
  191. package/dist/providers/movies/goku.js +369 -0
  192. package/dist/providers/movies/goku.js.map +1 -0
  193. package/dist/providers/movies/himovies.d.ts +102 -0
  194. package/dist/providers/movies/himovies.js +445 -0
  195. package/dist/providers/movies/himovies.js.map +1 -0
  196. package/dist/providers/movies/index.d.ts +17 -0
  197. package/dist/providers/movies/index.js +22 -0
  198. package/dist/providers/movies/index.js.map +1 -0
  199. package/dist/providers/movies/netmirror.d.ts +27 -0
  200. package/dist/providers/movies/netmirror.js +259 -0
  201. package/dist/providers/movies/netmirror.js.map +1 -0
  202. package/dist/providers/movies/sflix.d.ts +106 -0
  203. package/dist/providers/movies/sflix.js +490 -0
  204. package/dist/providers/movies/sflix.js.map +1 -0
  205. package/dist/providers/movies/turkish123.d.ts +32 -0
  206. package/dist/providers/movies/turkish123.js +141 -0
  207. package/dist/providers/movies/turkish123.js.map +1 -0
  208. package/dist/providers/news/animenewsnetwork.d.ts +30 -0
  209. package/dist/providers/news/animenewsnetwork.js +105 -0
  210. package/dist/providers/news/animenewsnetwork.js.map +1 -0
  211. package/dist/providers/news/index.d.ts +5 -0
  212. package/dist/providers/news/index.js +8 -0
  213. package/dist/providers/news/index.js.map +1 -0
  214. package/dist/providers/others/index.d.ts +0 -0
  215. package/dist/providers/others/index.js +2 -0
  216. package/dist/providers/others/index.js.map +1 -0
  217. package/dist/utils/index.d.ts +3 -0
  218. package/dist/utils/index.js +33 -0
  219. package/dist/utils/index.js.map +1 -0
  220. package/dist/utils/providers-list.d.ts +11 -0
  221. package/dist/utils/providers-list.js +40 -0
  222. package/dist/utils/providers-list.js.map +1 -0
  223. package/dist/utils/queries.d.ts +13 -0
  224. package/dist/utils/queries.js +31 -0
  225. package/dist/utils/queries.js.map +1 -0
  226. package/dist/utils/utils.d.ts +32 -0
  227. package/dist/utils/utils.js +324 -0
  228. package/dist/utils/utils.js.map +1 -0
  229. 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;