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,376 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const cheerio_1 = require("cheerio");
4
+ const models_1 = require("../../models");
5
+ const utils_1 = require("../../utils/utils");
6
+ class MangaHere extends models_1.MangaParser {
7
+ constructor() {
8
+ super(...arguments);
9
+ this.name = 'MangaHere';
10
+ this.baseUrl = 'https://mangahere.cc';
11
+ this.logo = 'https://i.pinimg.com/564x/51/08/62/51086247ed16ff8abae2df0bb06448e4.jpg';
12
+ this.classPath = 'MANGA.MangaHere';
13
+ this.fetchMangaInfo = async (mangaId) => {
14
+ const mangaInfo = {
15
+ id: mangaId,
16
+ title: '',
17
+ };
18
+ try {
19
+ const { data } = await this.client.get(`${this.baseUrl}/manga/${mangaId}`, {
20
+ headers: {
21
+ cookie: 'isAdult=1',
22
+ },
23
+ });
24
+ const $ = (0, cheerio_1.load)(data);
25
+ mangaInfo.title = $('span.detail-info-right-title-font').text();
26
+ mangaInfo.description = $('div.detail-info-right > p.fullcontent').text();
27
+ mangaInfo.headers = { Referer: this.baseUrl };
28
+ mangaInfo.image = $('div.detail-info-cover > img').attr('src');
29
+ mangaInfo.genres = $('p.detail-info-right-tag-list > a')
30
+ .map((i, el) => { var _a; return (_a = $(el).attr('title')) === null || _a === void 0 ? void 0 : _a.trim(); })
31
+ .get();
32
+ switch ($('span.detail-info-right-title-tip').text()) {
33
+ case 'Ongoing':
34
+ mangaInfo.status = models_1.MediaStatus.ONGOING;
35
+ break;
36
+ case 'Completed':
37
+ mangaInfo.status = models_1.MediaStatus.COMPLETED;
38
+ break;
39
+ default:
40
+ mangaInfo.status = models_1.MediaStatus.UNKNOWN;
41
+ break;
42
+ }
43
+ mangaInfo.rating = parseFloat($('span.detail-info-right-title-star > span').last().text());
44
+ mangaInfo.authors = $('p.detail-info-right-say > a')
45
+ .map((i, el) => $(el).attr('title'))
46
+ .get();
47
+ mangaInfo.chapters = $('ul.detail-main-list > li')
48
+ .map((i, el) => {
49
+ var _a;
50
+ return ({
51
+ id: (_a = $(el).find('a').attr('href')) === null || _a === void 0 ? void 0 : _a.split('/manga/')[1].slice(0, -7),
52
+ title: $(el).find('a > div > p.title3').text(),
53
+ releasedDate: $(el).find('a > div > p.title2').text().trim(),
54
+ });
55
+ })
56
+ .get();
57
+ return mangaInfo;
58
+ }
59
+ catch (err) {
60
+ throw new Error(err.message);
61
+ }
62
+ };
63
+ this.fetchChapterPages = async (chapterId) => {
64
+ var _a, _b;
65
+ const chapterPages = [];
66
+ const url = `${this.baseUrl}/manga/${chapterId}/1.html`;
67
+ try {
68
+ const { data } = await this.client.get(url, {
69
+ headers: {
70
+ cookie: 'isAdult=1',
71
+ },
72
+ });
73
+ const $ = (0, cheerio_1.load)(data);
74
+ const copyrightHandle = $('p.detail-block-content').text().match('Dear user') ||
75
+ $('p.detail-block-content').text().match('blocked');
76
+ if (copyrightHandle) {
77
+ throw Error((_a = copyrightHandle.input) === null || _a === void 0 ? void 0 : _a.trim());
78
+ }
79
+ const bar = $('script[src*=chapter_bar]').data();
80
+ const html = $.html();
81
+ if (typeof bar !== 'undefined') {
82
+ const ss = html.indexOf('eval(function(p,a,c,k,e,d)');
83
+ const se = html.indexOf('</script>', ss);
84
+ const s = html.substring(ss, se);
85
+ const ds = (0, utils_1.safeUnpack)(s);
86
+ const urls = ds.split("['")[1].split("']")[0].split("','");
87
+ urls.map((url, i) => chapterPages.push({
88
+ page: i,
89
+ img: `https:${url}`,
90
+ headerForImage: { Referer: url },
91
+ }));
92
+ }
93
+ else {
94
+ let sKey = this.extractKey(html);
95
+ const chapterIdsl = html.indexOf('chapterid');
96
+ const chapterId = html.substring(chapterIdsl + 11, html.indexOf(';', chapterIdsl)).trim();
97
+ const chapterPagesElmnt = $('body > div:nth-child(6) > div > span').children('a');
98
+ const pages = parseInt((_b = chapterPagesElmnt.last().prev().attr('data-page')) !== null && _b !== void 0 ? _b : '0');
99
+ const pageBase = url.substring(0, url.lastIndexOf('/'));
100
+ let resText = '';
101
+ for (let i = 1; i <= pages; i++) {
102
+ const pageLink = `${pageBase}/chapterfun.ashx?cid=${chapterId}&page=${i}&key=${sKey}`;
103
+ for (let j = 1; j <= 3; j++) {
104
+ const { data } = await this.client.get(pageLink, {
105
+ headers: {
106
+ Referer: url,
107
+ 'X-Requested-With': 'XMLHttpRequest',
108
+ cookie: 'isAdult=1',
109
+ },
110
+ });
111
+ resText = data;
112
+ if (resText)
113
+ break;
114
+ else
115
+ sKey = '';
116
+ }
117
+ const ds = (0, utils_1.safeUnpack)(resText);
118
+ const baseLinksp = ds.indexOf('pix=') + 5;
119
+ const baseLinkes = ds.indexOf(';', baseLinksp) - 1;
120
+ const baseLink = ds.substring(baseLinksp, baseLinkes);
121
+ const imageLinksp = ds.indexOf('pvalue=') + 9;
122
+ const imageLinkes = ds.indexOf('"', imageLinksp);
123
+ const imageLink = ds.substring(imageLinksp, imageLinkes);
124
+ chapterPages.push({
125
+ page: i - 1,
126
+ img: `https:${baseLink}${imageLink}`,
127
+ headerForImage: { Referer: url },
128
+ });
129
+ }
130
+ }
131
+ return chapterPages;
132
+ }
133
+ catch (err) {
134
+ throw new Error(err.message);
135
+ }
136
+ };
137
+ this.search = async (query, page = 1) => {
138
+ const searchRes = {
139
+ currentPage: page,
140
+ results: [],
141
+ };
142
+ try {
143
+ const { data } = await this.client.get(`${this.baseUrl}/search?title=${query}&page=${page}`);
144
+ const $ = (0, cheerio_1.load)(data);
145
+ searchRes.hasNextPage = $('div.pager-list-left > a.active').next().text() !== '>';
146
+ searchRes.results = $('div.container > div > div > ul > li')
147
+ .map((i, el) => {
148
+ var _a;
149
+ return ({
150
+ id: (_a = $(el).find('a').attr('href')) === null || _a === void 0 ? void 0 : _a.split('/')[2],
151
+ title: $(el).find('p.manga-list-4-item-title > a').text(),
152
+ headerForImage: { Referer: this.baseUrl },
153
+ image: $(el).find('a > img').attr('src'),
154
+ description: $(el).find('p').last().text(),
155
+ status: $(el).find('p.manga-list-4-show-tag-list-2 > a').text() === 'Ongoing'
156
+ ? models_1.MediaStatus.ONGOING
157
+ : $(el).find('p.manga-list-4-show-tag-list-2 > a').text() === 'Completed'
158
+ ? models_1.MediaStatus.COMPLETED
159
+ : models_1.MediaStatus.UNKNOWN,
160
+ });
161
+ })
162
+ .get();
163
+ return searchRes;
164
+ }
165
+ catch (err) {
166
+ throw new Error(err.message);
167
+ }
168
+ };
169
+ this.fetchMangaRanking = async (type = 'total') => {
170
+ let url = '';
171
+ switch (type) {
172
+ case 'total':
173
+ url = `${this.baseUrl}/totalranking/`;
174
+ break;
175
+ case 'month':
176
+ url = `${this.baseUrl}/monthranking/`;
177
+ break;
178
+ case 'week':
179
+ url = `${this.baseUrl}/ranking/`;
180
+ break;
181
+ case 'day':
182
+ url = `${this.baseUrl}/dayranking/`;
183
+ break;
184
+ default:
185
+ url = `${this.baseUrl}/totalranking/`;
186
+ break;
187
+ }
188
+ return this._getMangaList(url);
189
+ };
190
+ this.fetchMangaHotReleases = async () => this._getMangaList(`${this.baseUrl}/hot/`);
191
+ this.fetchMangaTrending = async () => this._getMangaList(`${this.baseUrl}/trending/`);
192
+ this.fetchMangaRecentUpdate = async (page = 1) => {
193
+ try {
194
+ const { data } = await this.client.get(`${this.baseUrl}/latest/${page}/`);
195
+ const $ = (0, cheerio_1.load)(data);
196
+ const recentUpdate = {
197
+ currentPage: page,
198
+ hasNextPage: $('div.pager-list-left > a').last().text() === '>',
199
+ results: [],
200
+ };
201
+ recentUpdate.results = $('ul.manga-list-4-list > li')
202
+ .map((i, el) => {
203
+ var _a;
204
+ const latestChapter = $(el).find('ul.manga-list-4-item-part > li > a').first();
205
+ const latestChapterUrl = latestChapter.attr('href');
206
+ const latestChapterText = latestChapter.text();
207
+ let latestChapterId;
208
+ if (latestChapterUrl) {
209
+ latestChapterId = latestChapterUrl.substring('/manga/'.length, latestChapterUrl.lastIndexOf('/'));
210
+ }
211
+ let latestChapterNumber;
212
+ if (latestChapterText) {
213
+ const match = latestChapterText.match(/(\d+(\.\d+)?)$/);
214
+ if (match) {
215
+ latestChapterNumber = parseFloat(match[0]);
216
+ }
217
+ }
218
+ return {
219
+ id: (_a = $(el).find('a').first().attr('href')) === null || _a === void 0 ? void 0 : _a.split('/')[2],
220
+ title: $(el).find('p.manga-list-4-item-title > a').attr('title'),
221
+ image: $(el).find('a > img').first().attr('src'),
222
+ genres: $(el)
223
+ .find('p.manga-list-4-show-tag-list > a')
224
+ .map((i, el) => $(el).text())
225
+ .get(),
226
+ latestChapterId: latestChapterId,
227
+ latestChapterNumber: latestChapterNumber,
228
+ headerForImage: { Referer: this.baseUrl },
229
+ };
230
+ })
231
+ .get();
232
+ return recentUpdate;
233
+ }
234
+ catch (err) {
235
+ throw new Error(err.message);
236
+ }
237
+ };
238
+ this.browse = async (options = {}) => {
239
+ const { genre, status, sort, page = 1 } = options;
240
+ let path = '/directory/';
241
+ const pathSegments = [];
242
+ if (genre) {
243
+ pathSegments.push(genre);
244
+ }
245
+ if (status && status !== 'all') {
246
+ switch (status) {
247
+ case 'new':
248
+ pathSegments.push('new');
249
+ break;
250
+ case 'completed':
251
+ pathSegments.push('completed');
252
+ break;
253
+ case 'ongoing':
254
+ pathSegments.push('on_going');
255
+ break;
256
+ }
257
+ }
258
+ if (pathSegments.length > 0) {
259
+ path = `/${pathSegments.join('/')}/`;
260
+ }
261
+ let url = `${this.baseUrl}${path}`;
262
+ if (page > 1) {
263
+ url += `${page}.htm`;
264
+ }
265
+ if (sort && sort !== 'popularity') {
266
+ url += `?${sort}`;
267
+ }
268
+ try {
269
+ const { data } = await this.client.get(url, {
270
+ headers: {
271
+ cookie: 'isAdult=1',
272
+ },
273
+ });
274
+ const $ = (0, cheerio_1.load)(data);
275
+ const browseResult = {
276
+ currentPage: page,
277
+ hasNextPage: $('.pager-list-left > a').last().text() === '>',
278
+ results: [],
279
+ };
280
+ browseResult.results = $('.manga-list-1-list > li')
281
+ .map((i, el) => {
282
+ var _a;
283
+ const subtitleLink = $(el).find('p.manga-list-1-item-subtitle > a');
284
+ const latestChapterUrl = subtitleLink.attr('href');
285
+ const latestChapterText = subtitleLink.text();
286
+ let latestChapterId;
287
+ if (latestChapterUrl) {
288
+ latestChapterId = latestChapterUrl.substring('/manga/'.length, latestChapterUrl.lastIndexOf('/'));
289
+ }
290
+ let latestChapterNumber;
291
+ if (latestChapterText) {
292
+ const match = latestChapterText.match(/(\d+(\.\d+)?)$/);
293
+ if (match) {
294
+ latestChapterNumber = parseFloat(match[0]);
295
+ }
296
+ }
297
+ return {
298
+ id: (_a = $(el).find('a').first().attr('href')) === null || _a === void 0 ? void 0 : _a.split('/')[2],
299
+ title: $(el).find('a').first().attr('title'),
300
+ image: $(el).find('a > img').first().attr('src'),
301
+ headerForImage: { Referer: this.baseUrl },
302
+ latestChapterId: latestChapterId,
303
+ latestChapterNumber: latestChapterNumber,
304
+ };
305
+ })
306
+ .get();
307
+ return browseResult;
308
+ }
309
+ catch (err) {
310
+ throw new Error(err.message);
311
+ }
312
+ };
313
+ this._getMangaList = async (url) => {
314
+ try {
315
+ const { data } = await this.client.get(url, {
316
+ headers: {
317
+ cookie: 'isAdult=1',
318
+ },
319
+ });
320
+ const $ = (0, cheerio_1.load)(data);
321
+ const mangaList = {
322
+ currentPage: 1,
323
+ hasNextPage: false,
324
+ results: [],
325
+ };
326
+ mangaList.results = $('.manga-list-1-list > li')
327
+ .map((i, el) => {
328
+ var _a;
329
+ const subtitleLink = $(el).find('p.manga-list-1-item-subtitle > a');
330
+ const latestChapterUrl = subtitleLink.attr('href');
331
+ const latestChapterText = subtitleLink.text();
332
+ let latestChapterId;
333
+ if (latestChapterUrl) {
334
+ latestChapterId = latestChapterUrl.substring('/manga/'.length, latestChapterUrl.lastIndexOf('/'));
335
+ }
336
+ let latestChapterNumber;
337
+ if (latestChapterText) {
338
+ const match = latestChapterText.match(/(\d+(\.\d+)?)$/);
339
+ if (match) {
340
+ latestChapterNumber = parseFloat(match[0]);
341
+ }
342
+ }
343
+ return {
344
+ id: (_a = $(el).find('a').first().attr('href')) === null || _a === void 0 ? void 0 : _a.split('/')[2],
345
+ title: $(el).find('a').first().attr('title'),
346
+ image: $(el).find('a > img').first().attr('src'),
347
+ headerForImage: { Referer: this.baseUrl },
348
+ latestChapterId: latestChapterId,
349
+ latestChapterNumber: latestChapterNumber,
350
+ };
351
+ })
352
+ .get();
353
+ return mangaList;
354
+ }
355
+ catch (err) {
356
+ throw new Error(err.message);
357
+ }
358
+ };
359
+ /**
360
+ * credit: [tachiyomi-extensions](https://github.com/tachiyomiorg/tachiyomi-extensions/blob/master/src/en/mangahere/src/eu/kanade/tachiyomi/extension/en/mangahere/Mangahere.kt)
361
+ */
362
+ this.extractKey = (html) => {
363
+ const skss = html.indexOf('eval(function(p,a,c,k,e,d)');
364
+ const skse = html.indexOf('</script>', skss);
365
+ const sks = html.substring(skss, skse);
366
+ const skds = (0, utils_1.safeUnpack)(sks);
367
+ const sksl = skds.indexOf("'");
368
+ const skel = skds.indexOf(';');
369
+ const skrs = skds.substring(sksl, skel);
370
+ // return eval(skrs) as string;
371
+ return skrs.slice(1, -1);
372
+ };
373
+ }
374
+ }
375
+ exports.default = MangaHere;
376
+ //# sourceMappingURL=mangahere.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mangahere.js","sourceRoot":"","sources":["../../../src/providers/manga/mangahere.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,56 @@
1
+ import { MangaParser, ISearch, IMangaInfo, IMangaResult, IMangaChapterPage } from '../../models';
2
+ declare class MangaKakalot extends MangaParser {
3
+ readonly name = "MangaKakalot";
4
+ protected baseUrl: string;
5
+ protected logo: string;
6
+ protected classPath: string;
7
+ private cookieJar;
8
+ private cookieTimestamps;
9
+ private warmedUp;
10
+ private readonly COOKIE_MAX_AGE;
11
+ private readonly WARMUP_MAX_AGE;
12
+ private currentUA;
13
+ private readonly userAgents;
14
+ private getRotatedUA;
15
+ private extractCookies;
16
+ private cleanExpiredCookies;
17
+ private buildCookieHeader;
18
+ private isCloudflareChallenge;
19
+ private buildHeaders;
20
+ private warmupDomain;
21
+ private delay;
22
+ private proxyRequest;
23
+ /**
24
+ * Search for manga
25
+ * @param query Search query
26
+ * @param page Page number (default: 1)
27
+ */
28
+ search: (query: string, page?: number) => Promise<ISearch<IMangaResult>>;
29
+ /**
30
+ * Fetch manga info including chapters
31
+ * @param mangaId Manga ID from search results
32
+ */
33
+ fetchMangaInfo: (mangaId: string) => Promise<IMangaInfo>;
34
+ /**
35
+ * Fetch chapter pages (images)
36
+ * @param chapterId Chapter ID in format "mangaId/chapterId"
37
+ */
38
+ fetchChapterPages: (chapterId: string) => Promise<IMangaChapterPage[]>;
39
+ /**
40
+ * Fetch latest manga updates
41
+ * @param page Page number (default: 1)
42
+ */
43
+ fetchLatestUpdates: (page?: number) => Promise<ISearch<IMangaResult>>;
44
+ /**
45
+ * Fetch manga by genre
46
+ * @param genre Genre slug (e.g., "action", "romance")
47
+ * @param page Page number (default: 1)
48
+ */
49
+ fetchByGenre: (genre: string, page?: number) => Promise<ISearch<IMangaResult>>;
50
+ /**
51
+ * Fetch suggestions (autocomplete)
52
+ * @param query Search term
53
+ */
54
+ fetchSuggestions: (query: string) => Promise<IMangaResult[]>;
55
+ }
56
+ export default MangaKakalot;