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,110 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const cheerio_1 = require("cheerio");
4
+ const models_1 = require("../../models");
5
+ class MangaReader extends models_1.MangaParser {
6
+ constructor() {
7
+ super(...arguments);
8
+ this.name = 'MangaReader';
9
+ this.baseUrl = 'https://mangareader.to';
10
+ this.logo = 'https://pbs.twimg.com/profile_images/1437311892905545728/TO0hFfUr_400x400.jpg';
11
+ this.classPath = 'MANGA.MangaReader';
12
+ /**
13
+ *
14
+ * @param query Search query
15
+ */
16
+ this.search = async (query) => {
17
+ try {
18
+ const { data } = await this.client.get(`${this.baseUrl}/search?keyword=${query}`);
19
+ const $ = (0, cheerio_1.load)(data);
20
+ const results = $('div.manga_list-sbs div.mls-wrap div.item')
21
+ .map((i, el) => {
22
+ var _a;
23
+ return ({
24
+ id: (_a = $(el).find('a.manga-poster').attr('href')) === null || _a === void 0 ? void 0 : _a.split('/')[1],
25
+ title: $(el).find('div.manga-detail h3.manga-name a').text().trim(),
26
+ image: $(el).find('a.manga-poster img').attr('src'),
27
+ genres: $(el)
28
+ .find(`div.manga-detail div.fd-infor span > a`)
29
+ .map((i, genre) => $(genre).text())
30
+ .get(),
31
+ });
32
+ })
33
+ .get();
34
+ return {
35
+ results: results,
36
+ };
37
+ }
38
+ catch (err) {
39
+ // console.log(err);
40
+ throw new Error(err.message);
41
+ }
42
+ };
43
+ this.fetchMangaInfo = async (mangaId) => {
44
+ const mangaInfo = {
45
+ id: mangaId,
46
+ title: '',
47
+ };
48
+ try {
49
+ const { data } = await this.client.get(`${this.baseUrl}/${mangaId}`);
50
+ const $ = (0, cheerio_1.load)(data);
51
+ const container = $('div.container');
52
+ mangaInfo.title = container.find('div.anisc-detail h2.manga-name').text().trim();
53
+ mangaInfo.image = container.find('img.manga-poster-img').attr('src');
54
+ mangaInfo.description = $('div.modal-body div.description-modal').text().split('\n').join(' ').trim();
55
+ mangaInfo.genres = container
56
+ .find('div.sort-desc div.genres a')
57
+ .map((i, genre) => $(genre).text().trim())
58
+ .get();
59
+ mangaInfo.chapters = container
60
+ .find(`div.chapters-list-ul ul li`)
61
+ .map((i, el) => {
62
+ var _a;
63
+ return ({
64
+ id: (_a = $(el).find('a').attr('href')) === null || _a === void 0 ? void 0 : _a.split('/read/')[1],
65
+ title: $(el).find('a').attr('title').trim(),
66
+ chapter: $(el).find('a span.name').text().split('Chapter ')[1].split(':')[0],
67
+ });
68
+ })
69
+ .get();
70
+ return mangaInfo;
71
+ }
72
+ catch (err) {
73
+ throw new Error(err.message);
74
+ }
75
+ };
76
+ this.fetchChapterPages = async (chapterId) => {
77
+ try {
78
+ const { data } = await this.client.get(`${this.baseUrl}/read/${chapterId}`);
79
+ const $ = (0, cheerio_1.load)(data);
80
+ const readingId = $('div#wrapper').attr('data-reading-id');
81
+ if (!readingId) {
82
+ throw new Error('Unable to find pages');
83
+ }
84
+ const ajaxURL = `https://mangareader.to/ajax/image/list/chap/${readingId}?mode=vertical&quality=high`;
85
+ const { data: pagesData } = await this.client.get(ajaxURL);
86
+ const $PagesHTML = (0, cheerio_1.load)(pagesData.html);
87
+ const pagesSelector = $PagesHTML('div#main-wrapper div.container-reader-chapter div.iv-card');
88
+ const pages = pagesSelector
89
+ .map((i, el) => ({
90
+ img: $(el).attr('data-url').replace('&', '&'),
91
+ page: i + 1,
92
+ }))
93
+ .get();
94
+ return pages;
95
+ }
96
+ catch (err) {
97
+ throw new Error(err.message);
98
+ }
99
+ };
100
+ }
101
+ }
102
+ // (async () => {
103
+ // const manga = new MangaReader();
104
+ // const search = await manga.search('one piece');
105
+ // const info = await manga.fetchMangaInfo(search.results[0].id);
106
+ // const pages = await manga.fetchChapterPages(info.chapters![0].id);
107
+ // console.log(pages);
108
+ // })();
109
+ exports.default = MangaReader;
110
+ //# sourceMappingURL=mangareader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mangareader.js","sourceRoot":"","sources":["../../../src/providers/manga/mangareader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { MangaParser, ISearch, IMangaInfo, IMangaResult, IMangaChapterPage } from '../../models';
2
+ declare class WeebCentral extends MangaParser {
3
+ readonly name = "WeebCentral";
4
+ protected baseUrl: string;
5
+ protected logo: string;
6
+ protected classPath: string;
7
+ private headers;
8
+ search: (query: string, page?: number) => Promise<ISearch<IMangaResult>>;
9
+ fetchMangaInfo: (mangaId: string) => Promise<IMangaInfo>;
10
+ fetchChapterPages: (chapterId: string) => Promise<IMangaChapterPage[]>;
11
+ }
12
+ export default WeebCentral;
@@ -0,0 +1,169 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const cheerio_1 = require("cheerio");
4
+ const models_1 = require("../../models");
5
+ class WeebCentral extends models_1.MangaParser {
6
+ constructor() {
7
+ super(...arguments);
8
+ this.name = 'WeebCentral';
9
+ this.baseUrl = 'https://weebcentral.com';
10
+ this.logo = 'https://weebcentral.com/static/images/brand.png';
11
+ this.classPath = 'MANGA.WeebCentral';
12
+ this.headers = {
13
+ 'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64; rv:144.0) Gecko/20100101 Firefox/144.0',
14
+ Accept: '*/*',
15
+ 'Accept-Language': 'en-US,en;q=0.5',
16
+ 'Sec-Fetch-Dest': 'empty',
17
+ 'Sec-Fetch-Mode': 'cors',
18
+ 'Sec-Fetch-Site': 'same-origin',
19
+ Connection: 'keep-alive',
20
+ };
21
+ this.search = async (query, page = 1) => {
22
+ try {
23
+ const limit = 32;
24
+ const offset = (page - 1) * limit;
25
+ const { data } = await this.client.get(`${this.baseUrl}/search/data`, {
26
+ params: {
27
+ limit: limit,
28
+ offset: offset,
29
+ text: query,
30
+ sort: 'Best Match',
31
+ order: 'Descending',
32
+ official: 'Any',
33
+ anime: 'Any',
34
+ adult: 'Any',
35
+ display_mode: 'Full Display',
36
+ },
37
+ headers: {
38
+ ...this.headers,
39
+ 'HX-Request': 'true',
40
+ 'HX-Current-URL': `${this.baseUrl}/search?text=${encodeURIComponent(query)}&sort=Best+Match&order=Descending&official=Any&anime=Any&adult=Any&display_mode=Full+Display`,
41
+ },
42
+ decompress: true,
43
+ });
44
+ const $ = (0, cheerio_1.load)(data);
45
+ const results = $('article.bg-base-300')
46
+ .map((i, el) => {
47
+ const linkElement = $(el).find('section a').first();
48
+ const href = linkElement.attr('href');
49
+ const id = (href === null || href === void 0 ? void 0 : href.split('/series/')[1]) || '';
50
+ const title = $(el).find('section.hidden.lg\\:block .tooltip a').text().trim() ||
51
+ $(el).find('section a .text-ellipsis').text().trim();
52
+ const image = $(el).find('picture source').first().attr('srcset') || $(el).find('picture img').attr('src');
53
+ return {
54
+ id: id,
55
+ title: title,
56
+ image: image,
57
+ };
58
+ })
59
+ .get();
60
+ const hasNextPage = results.length === limit;
61
+ return {
62
+ currentPage: page,
63
+ hasNextPage: hasNextPage,
64
+ results: results,
65
+ };
66
+ }
67
+ catch (err) {
68
+ throw new Error(err.message);
69
+ }
70
+ };
71
+ this.fetchMangaInfo = async (mangaId) => {
72
+ const mangaInfo = {
73
+ id: mangaId,
74
+ title: '',
75
+ };
76
+ try {
77
+ const cleanId = mangaId.split('/')[0];
78
+ const [mainResponse, chaptersResponse] = await Promise.all([
79
+ this.client.get(`${this.baseUrl}/series/${mangaId}`, {
80
+ headers: this.headers,
81
+ decompress: true,
82
+ }),
83
+ this.client.get(`${this.baseUrl}/series/${cleanId}/full-chapter-list`, {
84
+ headers: {
85
+ ...this.headers,
86
+ 'HX-Request': 'true',
87
+ 'HX-Target': 'chapter-list',
88
+ 'HX-Current-URL': `${this.baseUrl}/series/${mangaId}`,
89
+ },
90
+ decompress: true,
91
+ }),
92
+ ]);
93
+ const $ = (0, cheerio_1.load)(mainResponse.data);
94
+ const $chapters = (0, cheerio_1.load)(chaptersResponse.data);
95
+ mangaInfo.title = $('h1.text-2xl.font-bold').first().text().trim() || $('h1').first().text().trim();
96
+ mangaInfo.image = $('picture source').attr('srcset') || $('picture img').attr('src');
97
+ const descriptionElement = $('strong:contains("Description")').parent().find('p');
98
+ mangaInfo.description = descriptionElement.text().trim();
99
+ const authorLinks = $('strong:contains("Author(s)")').parent().find('a');
100
+ mangaInfo.authors = authorLinks.map((i, el) => $(el).text().trim()).get();
101
+ const genreLinks = $('strong:contains("Tags(s)")').parent().find('a');
102
+ mangaInfo.genres = genreLinks.map((i, el) => $(el).text().trim()).get();
103
+ const releaseDateText = $('strong:contains("Released")').parent().find('span').text().trim();
104
+ mangaInfo.releaseDate = releaseDateText;
105
+ const statusLink = $('strong:contains("Status")').parent().find('a');
106
+ mangaInfo.status = statusLink.text().trim().toLowerCase();
107
+ mangaInfo.chapters = $chapters('a[href*="/chapters/"]')
108
+ .map((i, el) => {
109
+ const href = $chapters(el).attr('href');
110
+ const chapterId = href === null || href === void 0 ? void 0 : href.split('/chapters/')[1];
111
+ const chapterText = $chapters(el).find('span.grow span').first().text().trim();
112
+ const timeElement = $chapters(el).find('time');
113
+ const releaseDate = timeElement.attr('datetime');
114
+ return {
115
+ id: chapterId,
116
+ title: chapterText,
117
+ releaseDate: releaseDate,
118
+ };
119
+ })
120
+ .get();
121
+ return mangaInfo;
122
+ }
123
+ catch (err) {
124
+ throw new Error(err.message);
125
+ }
126
+ };
127
+ this.fetchChapterPages = async (chapterId) => {
128
+ try {
129
+ const { data } = await this.client.get(`${this.baseUrl}/chapters/${chapterId}/images?is_prev=False&current_page=1&reading_style=long_strip`, {
130
+ headers: {
131
+ ...this.headers,
132
+ Referer: `${this.baseUrl}/chapters/${chapterId}`,
133
+ 'HX-Request': 'true',
134
+ 'HX-Current-URL': `${this.baseUrl}/chapters/${chapterId}`,
135
+ },
136
+ decompress: true,
137
+ });
138
+ const $ = (0, cheerio_1.load)(data);
139
+ const pages = $('img')
140
+ .map((i, el) => {
141
+ const imgSrc = $(el).attr('src');
142
+ const altText = $(el).attr('alt') || '';
143
+ const pageMatch = altText.match(/Page (\d+)/);
144
+ const pageNumber = pageMatch ? parseInt(pageMatch[1]) : i + 1;
145
+ return {
146
+ img: imgSrc,
147
+ page: pageNumber,
148
+ headerForImage: this.baseUrl,
149
+ };
150
+ })
151
+ .get()
152
+ .filter(page => page.img && !page.img.includes('broken_image.jpg')); // Filter out broken images
153
+ return pages;
154
+ }
155
+ catch (err) {
156
+ throw new Error(err.message);
157
+ }
158
+ };
159
+ }
160
+ }
161
+ // (async () => {
162
+ // const manga = new WeebCentral();
163
+ // const search = await manga.search('bleach');
164
+ // const info = await manga.fetchMangaInfo("01J76XY7VSG3R5ANYPDWTXDVP6/Kingdom");
165
+ // const pages = await manga.fetchChapterPages("01K8VEAEHDBSVQ6PJ3MNBDH7D7");
166
+ // console.log(pages)
167
+ // })();
168
+ exports.default = WeebCentral;
169
+ //# sourceMappingURL=weebcentral.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"weebcentral.js","sourceRoot":"","sources":["../../../src/providers/manga/weebcentral.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,206 @@
1
+ import { AxiosAdapter } from 'axios';
2
+ import { AnimeParser, ISearch, IAnimeInfo, IAnimeResult, ISource, IAnimeEpisode, IEpisodeServer, Genres, MangaParser, IMangaChapterPage, IMangaInfo, IMangaResult, IMangaChapter, ProxyConfig, IStaff } from '../../models';
3
+ declare class Anilist extends AnimeParser {
4
+ proxyConfig?: ProxyConfig | undefined;
5
+ readonly name = "Anilist";
6
+ protected baseUrl: string;
7
+ protected logo: string;
8
+ protected classPath: string;
9
+ private readonly anilistGraphqlUrl;
10
+ private readonly kitsuGraphqlUrl;
11
+ private readonly malSyncUrl;
12
+ private readonly anifyUrl;
13
+ provider: AnimeParser;
14
+ /**
15
+ * This class maps anilist to kitsu with any other anime provider.
16
+ * kitsu is used for episode images, titles and description.
17
+ * @param provider anime provider (optional) default: Gogoanime
18
+ * @param proxyConfig proxy config (optional)
19
+ * @param adapter axios adapter (optional)
20
+ */
21
+ constructor(provider?: AnimeParser, proxyConfig?: ProxyConfig | undefined, adapter?: AxiosAdapter);
22
+ /**
23
+ * @param authToken Anilist auth token
24
+ * @param type Type of favorites to fetch: 'ANIME', 'MANGA', or 'BOTH' (default: 'BOTH')
25
+ * @returns favorite lists
26
+ */
27
+ fetchFavoriteList: (authToken: string, type?: "ANIME" | "MANGA" | "BOTH") => Promise<{
28
+ anime?: IAnimeInfo[];
29
+ manga?: IAnimeInfo[];
30
+ }>;
31
+ /**
32
+ * @param query Search query
33
+ * @param page Page number (optional)
34
+ * @param perPage Number of results per page (optional) (default: 15) (max: 50)
35
+ */
36
+ search: (query: string, page?: number, perPage?: number) => Promise<ISearch<IAnimeResult>>;
37
+ /**
38
+ *
39
+ * @param query Search query (optional)
40
+ * @param type Media type (optional) (default: `ANIME`) (options: `ANIME`, `MANGA`)
41
+ * @param page Page number (optional)
42
+ * @param perPage Number of results per page (optional) (default: `20`) (max: `50`)
43
+ * @param format Format (optional) (options: `TV`, `TV_SHORT`, `MOVIE`, `SPECIAL`, `OVA`, `ONA`, `MUSIC`)
44
+ * @param sort Sort (optional) (Default: `[POPULARITY_DESC, SCORE_DESC]`) (options: `POPULARITY_DESC`, `POPULARITY`, `TRENDING_DESC`, `TRENDING`, `UPDATED_AT_DESC`, `UPDATED_AT`, `START_DATE_DESC`, `START_DATE`, `END_DATE_DESC`, `END_DATE`, `FAVOURITES_DESC`, `FAVOURITES`, `SCORE_DESC`, `SCORE`, `TITLE_ROMAJI_DESC`, `TITLE_ROMAJI`, `TITLE_ENGLISH_DESC`, `TITLE_ENGLISH`, `TITLE_NATIVE_DESC`, `TITLE_NATIVE`, `EPISODES_DESC`, `EPISODES`, `ID`, `ID_DESC`)
45
+ * @param genres Genres (optional) (options: `Action`, `Adventure`, `Cars`, `Comedy`, `Drama`, `Fantasy`, `Horror`, `Mahou Shoujo`, `Mecha`, `Music`, `Mystery`, `Psychological`, `Romance`, `Sci-Fi`, `Slice of Life`, `Sports`, `Supernatural`, `Thriller`)
46
+ * @param id anilist Id (optional)
47
+ * @param year Year (optional) e.g. `2022`
48
+ * @param status Status (optional) (options: `RELEASING`, `FINISHED`, `NOT_YET_RELEASED`, `CANCELLED`, `HIATUS`)
49
+ * @param season Season (optional) (options: `WINTER`, `SPRING`, `SUMMER`, `FALL`)
50
+ * @param countryOfOrigin Country of origin (optional)
51
+ */
52
+ advancedSearch: (query?: string, type?: string, page?: number, perPage?: number, format?: string, sort?: string[], genres?: Genres[] | string[], id?: string | number, year?: number, status?: string, season?: string, countryOfOrigin?: string) => Promise<ISearch<IAnimeResult>>;
53
+ /**
54
+ *
55
+ * @param id Anime id
56
+ * @param dub to get dubbed episodes (optional) set to `true` to get dubbed episodes. **ONLY WORKS FOR GOGOANIME**
57
+ * @param fetchFiller to get filler boolean on the episode object (optional) set to `true` to get filler boolean on the episode object.
58
+ */
59
+ fetchAnimeInfo: (id: string, dub?: boolean, fetchFiller?: boolean) => Promise<IAnimeInfo>;
60
+ /**
61
+ *
62
+ * @param episodeId Episode id
63
+ */
64
+ fetchEpisodeSources: (episodeId: string, ...args: any) => Promise<ISource>;
65
+ /**
66
+ *
67
+ * @param episodeId Episode id
68
+ */
69
+ fetchEpisodeServers: (episodeId: string) => Promise<IEpisodeServer[]>;
70
+ private findAnime;
71
+ private findAnimeSlug;
72
+ private findKitsuAnime;
73
+ /**
74
+ * @param page page number to search for (optional)
75
+ * @param perPage number of results per page (optional)
76
+ */
77
+ fetchTrendingAnime: (page?: number, perPage?: number) => Promise<ISearch<IAnimeResult>>;
78
+ /**
79
+ *
80
+ * @param page page number to search for (optional)
81
+ * @param perPage number of results per page (optional)
82
+ */
83
+ fetchPopularAnime: (page?: number, perPage?: number) => Promise<ISearch<IAnimeResult>>;
84
+ /**
85
+ *
86
+ * @param page page number (optional)
87
+ * @param perPage number of results per page (optional)
88
+ * @param weekStart Filter by the start of the week (optional) (default: todays date) (options: 2 = Monday, 3 = Tuesday, 4 = Wednesday, 5 = Thursday, 6 = Friday, 0 = Saturday, 1 = Sunday) you can use either the number or the string
89
+ * @param weekEnd Filter by the end of the week (optional) similar to weekStart
90
+ * @param notYetAired if true will return anime that have not yet aired (optional)
91
+ * @returns the next airing episodes
92
+ */
93
+ fetchAiringSchedule: (page?: number, perPage?: number, weekStart?: number | string, weekEnd?: number | string, notYetAired?: boolean) => Promise<ISearch<IAnimeResult>>;
94
+ /**
95
+ *
96
+ * @param genres An array of genres to filter by (optional) genres: [`Action`, `Adventure`, `Cars`, `Comedy`, `Drama`, `Fantasy`, `Horror`, `Mahou Shoujo`, `Mecha`, `Music`, `Mystery`, `Psychological`, `Romance`, `Sci-Fi`, `Slice of Life`, `Sports`, `Supernatural`, `Thriller`]
97
+ * @param page page number (optional)
98
+ * @param perPage number of results per page (optional)
99
+ */
100
+ fetchAnimeGenres: (genres: string[] | Genres[], page?: number, perPage?: number) => Promise<ISearch<IAnimeResult>>;
101
+ private findAnimeRaw;
102
+ /**
103
+ * @returns a random anime
104
+ */
105
+ fetchRandomAnime: () => Promise<IAnimeInfo>;
106
+ /**
107
+ * @param provider The provider to get the episode Ids from (optional) default: `gogoanime` (options: `gogoanime`, `Hianime`)
108
+ * @param page page number (optional)
109
+ * @param perPage number of results per page (optional)
110
+ */
111
+ fetchRecentEpisodes: (provider?: "gogoanime" | "Hianime", page?: number, perPage?: number) => Promise<ISearch<IAnimeResult>>;
112
+ private fetchDefaultEpisodeList;
113
+ /**
114
+ * @param id anilist id
115
+ * @param dub language of the dubbed version (optional) currently only works for gogoanime
116
+ * @param fetchFiller to get filler boolean on the episode object (optional) set to `true` to get filler boolean on the episode object.
117
+ * @returns episode list **(without anime info)**
118
+ */
119
+ fetchEpisodesListById: (id: string, dub?: boolean, fetchFiller?: boolean) => Promise<IAnimeEpisode[]>;
120
+ /**
121
+ * @param id anilist id
122
+ * @returns anilist data for the anime **(without episodes)** (use `fetchEpisodesListById` to get the episodes) (use `fetchAnimeInfo` to get both)
123
+ */
124
+ fetchAnilistInfoById: (id: string) => Promise<IAnimeInfo>;
125
+ /**
126
+ * To get Staff details by anilistId
127
+ * @param id staff id from anilist
128
+ *
129
+ */
130
+ fetchStaffById: (id: number) => Promise<IStaff>;
131
+ /**
132
+ *
133
+ * @param id character id from anilist
134
+ */
135
+ fetchCharacterInfoById: (id: string) => Promise<{
136
+ id: any;
137
+ name: {
138
+ first: any;
139
+ last: any;
140
+ full: any;
141
+ native: any;
142
+ userPreferred: any;
143
+ alternative: any;
144
+ alternativeSpoiler: any;
145
+ };
146
+ image: any;
147
+ imageHash: string;
148
+ description: any;
149
+ gender: any;
150
+ dateOfBirth: {
151
+ year: any;
152
+ month: any;
153
+ day: any;
154
+ };
155
+ bloodType: any;
156
+ age: any;
157
+ hairColor: any;
158
+ eyeColor: any;
159
+ height: any;
160
+ weight: any;
161
+ occupation: any;
162
+ partner: any;
163
+ relatives: any;
164
+ race: any;
165
+ rank: any;
166
+ previousPosition: any;
167
+ dislikes: any;
168
+ sign: any;
169
+ zodicSign: any;
170
+ zodicAnimal: any;
171
+ themeSong: any;
172
+ relations: any;
173
+ }>;
174
+ /**
175
+ * Anilist Anime class
176
+ */
177
+ static Anime: typeof Anilist;
178
+ /**
179
+ * Anilist Manga Class
180
+ */
181
+ static Manga: {
182
+ new (provider?: MangaParser): {
183
+ provider: MangaParser;
184
+ /**
185
+ *
186
+ * @param query query to search for
187
+ * @param page (optional) page number (default: `1`)
188
+ * @param perPage (optional) number of results per page (default: `20`)
189
+ */
190
+ search: (query: string, page?: number, perPage?: number) => Promise<ISearch<IMangaResult>>;
191
+ /**
192
+ *
193
+ * @param chapterId chapter id
194
+ * @param args args to pass to the provider (if any)
195
+ * @returns
196
+ */
197
+ fetchChapterPages: (chapterId: string, ...args: any) => Promise<IMangaChapterPage[]>;
198
+ fetchChaptersList: (mangaId: string, ...args: any) => Promise<IMangaChapter[]>;
199
+ fetchMangaInfo: (id: string, ...args: any) => Promise<IMangaInfo>;
200
+ };
201
+ };
202
+ private findMangaSlug;
203
+ private findMangaRaw;
204
+ private findManga;
205
+ }
206
+ export default Anilist;