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,141 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const cheerio_1 = require("cheerio");
4
+ const models_1 = require("../../models");
5
+ class Turkish extends models_1.MovieParser {
6
+ constructor() {
7
+ super(...arguments);
8
+ this.name = 'Turkish123';
9
+ this.baseUrl = 'https://turkish123.ac/';
10
+ this.classPath = 'MOVIES.Turkish';
11
+ this.supportedTypes = new Set([models_1.TvType.TVSERIES]);
12
+ }
13
+ /**
14
+ * Search for Turkish TV shows
15
+ * @param query search query string
16
+ */
17
+ async search(query) {
18
+ try {
19
+ const params = `wp-admin/admin-ajax.php?s=${query}&action=searchwp_live_search&swpengine=default&swpquery=${query}`;
20
+ const { data } = await this.client(this.baseUrl + params, {
21
+ headers: this.getRequestHeaders(),
22
+ });
23
+ const $ = (0, cheerio_1.load)(data);
24
+ const results = [];
25
+ $('li')
26
+ .not('.ss-bottom')
27
+ .each((_, el) => {
28
+ const $el = $(el);
29
+ const href = $el.find('a').attr('href');
30
+ const styleAttr = $el.find('a').attr('style');
31
+ const imageMatch = styleAttr.match(/url\((.*?)\)/);
32
+ results.push({
33
+ id: href.replace(this.baseUrl, '').replace('/', ''),
34
+ image: imageMatch ? imageMatch[1] : '',
35
+ title: $el.find('.ss-title').text(),
36
+ tags: $el
37
+ .find('.ss-info > a')
38
+ .not('.ss-title')
39
+ .map((_, e) => $(e).text())
40
+ .get()
41
+ .filter(v => v !== 'NULL'),
42
+ });
43
+ });
44
+ return results;
45
+ }
46
+ catch (err) {
47
+ throw new Error(err.message);
48
+ }
49
+ }
50
+ /**
51
+ * Fetch detailed media information
52
+ * @param mediaId media id
53
+ */
54
+ async fetchMediaInfo(mediaId) {
55
+ const info = { id: mediaId, title: '' };
56
+ try {
57
+ const { data } = await this.client(this.baseUrl + mediaId, {
58
+ headers: this.getRequestHeaders(),
59
+ });
60
+ const $ = (0, cheerio_1.load)(data);
61
+ const coverStyle = $('#content-cover').attr('style');
62
+ const coverMatch = coverStyle === null || coverStyle === void 0 ? void 0 : coverStyle.match(/url\((.*?)\)/);
63
+ info.image = coverMatch ? coverMatch[1] : undefined;
64
+ info.title = $('.mvic-desc > h1').text();
65
+ info.description = $('.f-desc')
66
+ .text()
67
+ .replace(/[\n\t\b]/g, '');
68
+ info.romaji = $('.yellowi').text();
69
+ info.tags = $('.mvici-left > p:nth-child(3)')
70
+ .find('a')
71
+ .map((_, el) => $(el).text())
72
+ .get();
73
+ info.rating = parseFloat($('.imdb-r').text());
74
+ info.releaseDate = $('.mvici-right > p:nth-child(3)').find('a').first().text();
75
+ info.totalEpisodes = $('.les-content > a').length;
76
+ info.episodes = $('.les-content > a')
77
+ .map((i, el) => {
78
+ const $el = $(el);
79
+ const href = $el.attr('href');
80
+ const episodeId = href.split('/').slice(-2)[0];
81
+ return {
82
+ id: episodeId,
83
+ title: `Episode ${i + 1}`,
84
+ };
85
+ })
86
+ .get();
87
+ return info;
88
+ }
89
+ catch (err) {
90
+ throw new Error(err.message);
91
+ }
92
+ }
93
+ /**
94
+ * Fetch episode servers (not implemented)
95
+ */
96
+ fetchEpisodeServers() {
97
+ throw new Error('Method not implemented.');
98
+ }
99
+ /**
100
+ * Fetch episode sources
101
+ * @param episodeId episode id
102
+ */
103
+ async fetchEpisodeSources(episodeId) {
104
+ try {
105
+ const { data } = await this.client(this.baseUrl + episodeId, {
106
+ headers: this.getRequestHeaders(),
107
+ });
108
+ // Extract tukipasti URL
109
+ const urlMatch = data.match(/"(https:\/\/tukipasti\.com\/t\/.*?)"/);
110
+ if (!urlMatch) {
111
+ throw new Error('Failed to extract tukipasti URL');
112
+ }
113
+ // Fetch the actual stream URL
114
+ const { data: streamData } = await this.client(urlMatch[1]);
115
+ const streamMatch = streamData.match(/var urlPlay = '(.*?)'/);
116
+ if (!streamMatch) {
117
+ throw new Error('Failed to extract stream URL');
118
+ }
119
+ return {
120
+ sources: [{ url: streamMatch[1] }],
121
+ headers: { Referer: 'https://tukipasti.com' },
122
+ };
123
+ }
124
+ catch (err) {
125
+ throw new Error(err.message);
126
+ }
127
+ }
128
+ /**
129
+ * Get common request headers
130
+ */
131
+ getRequestHeaders() {
132
+ return {
133
+ 'User-Agent': Turkish.USER_AGENT,
134
+ 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
135
+ Referer: this.baseUrl,
136
+ };
137
+ }
138
+ }
139
+ Turkish.USER_AGENT = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36';
140
+ exports.default = Turkish;
141
+ //# sourceMappingURL=turkish123.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"turkish123.js","sourceRoot":"","sources":["../../../src/providers/movies/turkish123.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import { NewsParser, INewsFeed, Topics, INewsInfo } from '../../models';
2
+ declare class NewsFeed implements INewsFeed {
3
+ title: string;
4
+ id: string;
5
+ uploadedAt: string;
6
+ topics: Topics[];
7
+ preview: INewsFeed['preview'];
8
+ thumbnail: string;
9
+ thumbnailHash: string;
10
+ url: string;
11
+ constructor(title: string, id: string, uploadedAt: string, topics: Topics[], preview: INewsFeed['preview'], thumbnail: string, thumbnailHash: string, url: string);
12
+ getInfo(): Promise<INewsInfo>;
13
+ }
14
+ declare class AnimeNewsNetwork extends NewsParser {
15
+ readonly name = "Anime News Network";
16
+ protected baseUrl: string;
17
+ protected classPath: string;
18
+ protected logo: string;
19
+ /**
20
+ * @param topic Topic for fetching the feeds
21
+ */
22
+ fetchNewsFeeds: (topic?: Topics) => Promise<NewsFeed[]>;
23
+ /**
24
+ * @param id ID of the news from Anime News Network
25
+ * @example
26
+ * fetchNewsInfo('2022-08-26/higurashi-no-naku-koro-ni-rei-oni-okoshi-hen-manga-ends/.188996') // --> https://www.animenewsnetwork.com/news/2022-08-26/higurashi-no-naku-koro-ni-rei-oni-okoshi-hen-manga-ends/.188996
27
+ */
28
+ fetchNewsInfo: (id: string) => Promise<INewsInfo>;
29
+ }
30
+ export default AnimeNewsNetwork;
@@ -0,0 +1,105 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const cheerio_1 = require("cheerio");
7
+ const axios_1 = __importDefault(require("axios"));
8
+ const utils_1 = require("../../utils/utils");
9
+ const models_1 = require("../../models");
10
+ class NewsFeed {
11
+ constructor(title, id, uploadedAt, topics, preview, thumbnail, thumbnailHash, url) {
12
+ this.title = title;
13
+ this.id = id;
14
+ this.uploadedAt = uploadedAt;
15
+ this.topics = topics;
16
+ this.preview = preview;
17
+ this.thumbnail = thumbnail;
18
+ this.thumbnailHash = thumbnailHash;
19
+ this.url = url;
20
+ }
21
+ async getInfo() {
22
+ return await scrapNewsInfo(this.url).catch((err) => {
23
+ throw new Error(err.message);
24
+ });
25
+ }
26
+ }
27
+ async function scrapNewsInfo(url) {
28
+ const { data } = await axios_1.default.get(url);
29
+ const $ = (0, cheerio_1.load)(data);
30
+ const title = $('#page_header').text().replace('News', '').trim();
31
+ const intro = $('.intro').first().text().trim();
32
+ const description = $('.meat > p').text().trim().split('\n\n').join('\n');
33
+ const time = $('#page-title > small > time').text().trim();
34
+ const thumbnailSlug = $('.meat > figure.fright').first().find('img').attr('data-src');
35
+ const thumbnail = thumbnailSlug
36
+ ? `https://animenewsnetwork.com${thumbnailSlug}`
37
+ : 'https://i.imgur.com/KkkVr1g.png';
38
+ const thumbnailHash = (0, utils_1.getHashFromImage)(thumbnailSlug ? `https://animenewsnetwork.com${thumbnailSlug}` : 'https://i.imgur.com/KkkVr1g.png');
39
+ return {
40
+ id: url.split('news/')[1],
41
+ title,
42
+ uploadedAt: time,
43
+ intro,
44
+ description,
45
+ thumbnail,
46
+ thumbnailHash,
47
+ url,
48
+ };
49
+ }
50
+ class AnimeNewsNetwork extends models_1.NewsParser {
51
+ constructor() {
52
+ super(...arguments);
53
+ this.name = 'Anime News Network';
54
+ this.baseUrl = 'https://www.animenewsnetwork.com';
55
+ this.classPath = 'NEWS.ANN';
56
+ this.logo = 'https://i.imgur.com/KkkVr1g.png';
57
+ /**
58
+ * @param topic Topic for fetching the feeds
59
+ */
60
+ this.fetchNewsFeeds = async (topic) => await axios_1.default
61
+ .get(`${this.baseUrl}/news${topic && Object.values(models_1.Topics).includes(topic) ? `/?topic=${topic}` : ''}`)
62
+ .then(({ data }) => {
63
+ const $ = (0, cheerio_1.load)(data);
64
+ const feeds = [];
65
+ $('.herald.box.news').each((i, el) => {
66
+ const thumbnailSlug = $(el).find('.thumbnail').attr('data-src');
67
+ const thumbnail = thumbnailSlug ? `${this.baseUrl}${thumbnailSlug}` : this.logo;
68
+ const thumbnailHash = (0, utils_1.getHashFromImage)(thumbnailSlug ? `${this.baseUrl}${thumbnailSlug}` : this.logo);
69
+ const title = $(el).find('h3').text().trim();
70
+ const slug = $(el).find('h3 > a').attr('href') || '';
71
+ const url = `${this.baseUrl}${slug}`;
72
+ const byline = $(el).find('.byline');
73
+ const time = byline.find('time').text().trim();
74
+ const topics = [];
75
+ byline.find('.topics > a').each((i, el) => {
76
+ topics.push($(el).text().trim());
77
+ });
78
+ const El = $(el).find('.preview');
79
+ const preview = {
80
+ intro: El.find('.intro').text().trim(),
81
+ full: El.find('.full').text().replace('―', '').trim(),
82
+ };
83
+ feeds.push(new NewsFeed(title, slug.replace('/news/', ''), time, topics, preview, thumbnail, thumbnailHash, url));
84
+ });
85
+ return feeds;
86
+ })
87
+ .catch((err) => {
88
+ throw new Error(err.message);
89
+ });
90
+ /**
91
+ * @param id ID of the news from Anime News Network
92
+ * @example
93
+ * fetchNewsInfo('2022-08-26/higurashi-no-naku-koro-ni-rei-oni-okoshi-hen-manga-ends/.188996') // --> https://www.animenewsnetwork.com/news/2022-08-26/higurashi-no-naku-koro-ni-rei-oni-okoshi-hen-manga-ends/.188996
94
+ */
95
+ this.fetchNewsInfo = async (id) => {
96
+ if (!id || typeof id !== 'string')
97
+ throw new TypeError(`The type of parameter "id" should be of type "string", received type "${typeof id}" instead`);
98
+ return await scrapNewsInfo(`${this.baseUrl}/news/${id}`).catch((err) => {
99
+ throw new Error(err.message);
100
+ });
101
+ };
102
+ }
103
+ }
104
+ exports.default = AnimeNewsNetwork;
105
+ //# sourceMappingURL=animenewsnetwork.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"animenewsnetwork.js","sourceRoot":"","sources":["../../../src/providers/news/animenewsnetwork.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { default as ANN } from './animenewsnetwork';
2
+ declare const _default: {
3
+ ANN: typeof ANN;
4
+ };
5
+ export default _default;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const animenewsnetwork_1 = __importDefault(require("./animenewsnetwork"));
7
+ exports.default = { ANN: animenewsnetwork_1.default };
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/news/index.ts"],"names":[],"mappings":";;;;;AAAA,0EAAoD;AAEpD,kBAAe,EAAE,GAAG,EAAH,0BAAG,EAAE,CAAC"}
File without changes
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/others/index.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ import { USER_AGENT, splitAuthor, floorID, formatTitle, genElement, capitalizeFirstLetter, range, getDays, days, isJson, convertDuration, substringAfter, substringBefore, compareTwoStrings, parsePostInfo, safeUnpack } from './utils';
2
+ import { anilistSearchQuery, anilistMediaDetailQuery, kitsuSearchQuery, anilistTrendingQuery, anilistPopularQuery, anilistAiringScheduleQuery, anilistGenresQuery, anilistAdvancedQuery, anilistSiteStatisticsQuery, anilistCharacterQuery, anilistStaffInfoQuery } from './queries';
3
+ export { USER_AGENT, days, splitAuthor, floorID, formatTitle, parsePostInfo, genElement, capitalizeFirstLetter, anilistSearchQuery, anilistMediaDetailQuery, kitsuSearchQuery, range, anilistTrendingQuery, anilistPopularQuery, anilistAiringScheduleQuery, anilistGenresQuery, anilistAdvancedQuery, anilistSiteStatisticsQuery, anilistStaffInfoQuery, anilistCharacterQuery, getDays, isJson, convertDuration, substringAfter, substringBefore, compareTwoStrings, safeUnpack, };
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.safeUnpack = exports.compareTwoStrings = exports.substringBefore = exports.substringAfter = exports.convertDuration = exports.isJson = exports.getDays = exports.anilistCharacterQuery = exports.anilistStaffInfoQuery = exports.anilistSiteStatisticsQuery = exports.anilistAdvancedQuery = exports.anilistGenresQuery = exports.anilistAiringScheduleQuery = exports.anilistPopularQuery = exports.anilistTrendingQuery = exports.range = exports.kitsuSearchQuery = exports.anilistMediaDetailQuery = exports.anilistSearchQuery = exports.capitalizeFirstLetter = exports.genElement = exports.parsePostInfo = exports.formatTitle = exports.floorID = exports.splitAuthor = exports.days = exports.USER_AGENT = void 0;
4
+ const utils_1 = require("./utils");
5
+ Object.defineProperty(exports, "USER_AGENT", { enumerable: true, get: function () { return utils_1.USER_AGENT; } });
6
+ Object.defineProperty(exports, "splitAuthor", { enumerable: true, get: function () { return utils_1.splitAuthor; } });
7
+ Object.defineProperty(exports, "floorID", { enumerable: true, get: function () { return utils_1.floorID; } });
8
+ Object.defineProperty(exports, "formatTitle", { enumerable: true, get: function () { return utils_1.formatTitle; } });
9
+ Object.defineProperty(exports, "genElement", { enumerable: true, get: function () { return utils_1.genElement; } });
10
+ Object.defineProperty(exports, "capitalizeFirstLetter", { enumerable: true, get: function () { return utils_1.capitalizeFirstLetter; } });
11
+ Object.defineProperty(exports, "range", { enumerable: true, get: function () { return utils_1.range; } });
12
+ Object.defineProperty(exports, "getDays", { enumerable: true, get: function () { return utils_1.getDays; } });
13
+ Object.defineProperty(exports, "days", { enumerable: true, get: function () { return utils_1.days; } });
14
+ Object.defineProperty(exports, "isJson", { enumerable: true, get: function () { return utils_1.isJson; } });
15
+ Object.defineProperty(exports, "convertDuration", { enumerable: true, get: function () { return utils_1.convertDuration; } });
16
+ Object.defineProperty(exports, "substringAfter", { enumerable: true, get: function () { return utils_1.substringAfter; } });
17
+ Object.defineProperty(exports, "substringBefore", { enumerable: true, get: function () { return utils_1.substringBefore; } });
18
+ Object.defineProperty(exports, "compareTwoStrings", { enumerable: true, get: function () { return utils_1.compareTwoStrings; } });
19
+ Object.defineProperty(exports, "parsePostInfo", { enumerable: true, get: function () { return utils_1.parsePostInfo; } });
20
+ Object.defineProperty(exports, "safeUnpack", { enumerable: true, get: function () { return utils_1.safeUnpack; } });
21
+ const queries_1 = require("./queries");
22
+ Object.defineProperty(exports, "anilistSearchQuery", { enumerable: true, get: function () { return queries_1.anilistSearchQuery; } });
23
+ Object.defineProperty(exports, "anilistMediaDetailQuery", { enumerable: true, get: function () { return queries_1.anilistMediaDetailQuery; } });
24
+ Object.defineProperty(exports, "kitsuSearchQuery", { enumerable: true, get: function () { return queries_1.kitsuSearchQuery; } });
25
+ Object.defineProperty(exports, "anilistTrendingQuery", { enumerable: true, get: function () { return queries_1.anilistTrendingQuery; } });
26
+ Object.defineProperty(exports, "anilistPopularQuery", { enumerable: true, get: function () { return queries_1.anilistPopularQuery; } });
27
+ Object.defineProperty(exports, "anilistAiringScheduleQuery", { enumerable: true, get: function () { return queries_1.anilistAiringScheduleQuery; } });
28
+ Object.defineProperty(exports, "anilistGenresQuery", { enumerable: true, get: function () { return queries_1.anilistGenresQuery; } });
29
+ Object.defineProperty(exports, "anilistAdvancedQuery", { enumerable: true, get: function () { return queries_1.anilistAdvancedQuery; } });
30
+ Object.defineProperty(exports, "anilistSiteStatisticsQuery", { enumerable: true, get: function () { return queries_1.anilistSiteStatisticsQuery; } });
31
+ Object.defineProperty(exports, "anilistCharacterQuery", { enumerable: true, get: function () { return queries_1.anilistCharacterQuery; } });
32
+ Object.defineProperty(exports, "anilistStaffInfoQuery", { enumerable: true, get: function () { return queries_1.anilistStaffInfoQuery; } });
33
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;AAAA,mCAiBiB;AAgBf,2FAhCA,kBAAU,OAgCA;AAEV,4FAjCA,mBAAW,OAiCA;AACX,wFAjCA,eAAO,OAiCA;AACP,4FAjCA,mBAAW,OAiCA;AAEX,2FAlCA,kBAAU,OAkCA;AACV,sGAlCA,6BAAqB,OAkCA;AAIrB,sFArCA,aAAK,OAqCA;AASL,wFA7CA,eAAO,OA6CA;AAnBP,qFAzBA,YAAI,OAyBA;AAoBJ,uFA5CA,cAAM,OA4CA;AACN,gGA5CA,uBAAe,OA4CA;AACf,+FA5CA,sBAAc,OA4CA;AACd,gGA5CA,uBAAe,OA4CA;AACf,kGA5CA,yBAAiB,OA4CA;AApBjB,8FAvBA,qBAAa,OAuBA;AAqBb,2FA3CA,kBAAU,OA2CA;AAzCZ,uCAYmB;AAWjB,mGAtBA,4BAAkB,OAsBA;AAClB,wGAtBA,iCAAuB,OAsBA;AACvB,iGAtBA,0BAAgB,OAsBA;AAEhB,qGAvBA,8BAAoB,OAuBA;AACpB,oGAvBA,6BAAmB,OAuBA;AACnB,2GAvBA,oCAA0B,OAuBA;AAC1B,mGAvBA,4BAAkB,OAuBA;AAClB,qGAvBA,8BAAoB,OAuBA;AACpB,2GAvBA,oCAA0B,OAuBA;AAE1B,sGAxBA,+BAAqB,OAwBA;AADrB,sGAtBA,+BAAqB,OAsBA"}
@@ -0,0 +1,11 @@
1
+ export declare const PROVIDERS_LIST: {
2
+ ANIME: (import("../providers/anime/animepahe").default | import("../providers/anime/hianime").default | import("../providers/anime/animesaturn").default | import("../providers/anime/animekai").default | import("../providers/anime/kickassanime").default | import("../providers/anime/animeunity").default)[];
3
+ MANGA: (import("../providers/manga/mangadex").default | import("../providers/manga/comick").default | import("../providers/manga/mangahere").default | import("../providers/manga/mangapill").default | import("../providers/manga/mangareader").default | import("../providers/manga/weebcentral").default | import("../providers/manga/mangakakalot").default | import("../providers/manga/comix").default)[];
4
+ BOOKS: never[];
5
+ COMICS: import("../providers/comics/getComics").default[];
6
+ LIGHT_NOVELS: never[];
7
+ MOVIES: (import("../providers/movies/dramacool").default | import("../providers/movies/flixhq").default | import("../providers/movies/goku").default | import("../providers/movies/turkish123").default | import("../providers/movies/sflix").default | import("../providers/movies/himovies").default)[];
8
+ NEWS: import("../providers/news/animenewsnetwork").default[];
9
+ META: (import("../providers/meta/anilist").default | import("../providers/meta/mal").default | import("../providers/meta/tmdb").default)[];
10
+ OTHERS: never[];
11
+ };
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PROVIDERS_LIST = void 0;
4
+ const providers_1 = require("../providers");
5
+ // List of providers
6
+ exports.PROVIDERS_LIST = {
7
+ ANIME: [
8
+ new providers_1.ANIME.AnimePahe(),
9
+ new providers_1.ANIME.Hianime(),
10
+ new providers_1.ANIME.AnimeKai(),
11
+ new providers_1.ANIME.AnimeUnity(),
12
+ new providers_1.ANIME.KickAssAnime(),
13
+ new providers_1.ANIME.AnimeSaturn(),
14
+ ],
15
+ MANGA: [
16
+ new providers_1.MANGA.WeebCentral(),
17
+ new providers_1.MANGA.MangaHere(),
18
+ new providers_1.MANGA.MangaPill(),
19
+ new providers_1.MANGA.MangaDex(),
20
+ new providers_1.MANGA.MangaReader(),
21
+ new providers_1.MANGA.MangaKakalot(),
22
+ new providers_1.MANGA.ComicK(),
23
+ new providers_1.MANGA.Comix(),
24
+ ],
25
+ BOOKS: [],
26
+ COMICS: [new providers_1.COMICS.GetComics()],
27
+ LIGHT_NOVELS: [],
28
+ MOVIES: [
29
+ new providers_1.MOVIES.DramaCool(),
30
+ new providers_1.MOVIES.FlixHQ(),
31
+ new providers_1.MOVIES.Goku(),
32
+ new providers_1.MOVIES.SFlix(),
33
+ new providers_1.MOVIES.HiMovies(),
34
+ new providers_1.MOVIES.Turkish(),
35
+ ],
36
+ NEWS: [new providers_1.NEWS.ANN()],
37
+ META: [new providers_1.META.Anilist(), new providers_1.META.TMDB(), new providers_1.META.Myanimelist()],
38
+ OTHERS: [],
39
+ };
40
+ //# sourceMappingURL=providers-list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"providers-list.js","sourceRoot":"","sources":["../../src/utils/providers-list.ts"],"names":[],"mappings":";;;AAAA,4CAA6F;AAE7F,oBAAoB;AACP,QAAA,cAAc,GAAG;IAC5B,KAAK,EAAE;QACL,IAAI,iBAAK,CAAC,SAAS,EAAE;QACrB,IAAI,iBAAK,CAAC,OAAO,EAAE;QACnB,IAAI,iBAAK,CAAC,QAAQ,EAAE;QACpB,IAAI,iBAAK,CAAC,UAAU,EAAE;QACtB,IAAI,iBAAK,CAAC,YAAY,EAAE;QACxB,IAAI,iBAAK,CAAC,WAAW,EAAE;KACxB;IACD,KAAK,EAAE;QACL,IAAI,iBAAK,CAAC,WAAW,EAAE;QACvB,IAAI,iBAAK,CAAC,SAAS,EAAE;QACrB,IAAI,iBAAK,CAAC,SAAS,EAAE;QACrB,IAAI,iBAAK,CAAC,QAAQ,EAAE;QACpB,IAAI,iBAAK,CAAC,WAAW,EAAE;QACvB,IAAI,iBAAK,CAAC,YAAY,EAAE;QACxB,IAAI,iBAAK,CAAC,MAAM,EAAE;QAClB,IAAI,iBAAK,CAAC,KAAK,EAAE;KAClB;IACD,KAAK,EAAE,EAAE;IACT,MAAM,EAAE,CAAC,IAAI,kBAAM,CAAC,SAAS,EAAE,CAAC;IAChC,YAAY,EAAE,EAAE;IAChB,MAAM,EAAE;QACN,IAAI,kBAAM,CAAC,SAAS,EAAE;QACtB,IAAI,kBAAM,CAAC,MAAM,EAAE;QACnB,IAAI,kBAAM,CAAC,IAAI,EAAE;QACjB,IAAI,kBAAM,CAAC,KAAK,EAAE;QAClB,IAAI,kBAAM,CAAC,QAAQ,EAAE;QACrB,IAAI,kBAAM,CAAC,OAAO,EAAE;KACrB;IACD,IAAI,EAAE,CAAC,IAAI,gBAAI,CAAC,GAAG,EAAE,CAAC;IACtB,IAAI,EAAE,CAAC,IAAI,gBAAI,CAAC,OAAO,EAAE,EAAE,IAAI,gBAAI,CAAC,IAAI,EAAE,EAAE,IAAI,gBAAI,CAAC,WAAW,EAAE,CAAC;IACnE,MAAM,EAAE,EAAE;CACX,CAAC"}
@@ -0,0 +1,13 @@
1
+ export declare const anilistAdvancedQuery: () => string;
2
+ export declare const anilistSearchQuery: (query: string, page: number, perPage: number, type?: "ANIME" | "MANGA") => string;
3
+ export declare const anilistMediaDetailQuery: (id: string) => string;
4
+ export declare const anilistTrendingQuery: (page?: number, perPage?: number, type?: "ANIME" | "MANGA") => string;
5
+ export declare const anilistPopularQuery: (page?: number, perPage?: number, type?: "ANIME" | "MANGA") => string;
6
+ export declare const anilistGenresQuery: (genres: string[], page?: number, perPage?: number) => string;
7
+ export declare const anilistAiringScheduleQuery: (page: number | undefined, perPage: number | undefined, weekStart: number, weekEnd: number, notYetAired: boolean) => string;
8
+ export declare const anilistSiteStatisticsQuery: () => string;
9
+ export declare const anilistCharacterQuery: () => string;
10
+ export declare const anilistStaffQuery: () => string;
11
+ export declare const kitsuSearchQuery: (query: string) => string;
12
+ export declare const anilistStaffInfoQuery: (id: number) => string;
13
+ export declare const anilistFavouritesQuery: () => string;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.anilistFavouritesQuery = exports.anilistStaffInfoQuery = exports.kitsuSearchQuery = exports.anilistStaffQuery = exports.anilistCharacterQuery = exports.anilistSiteStatisticsQuery = exports.anilistAiringScheduleQuery = exports.anilistGenresQuery = exports.anilistPopularQuery = exports.anilistTrendingQuery = exports.anilistMediaDetailQuery = exports.anilistSearchQuery = exports.anilistAdvancedQuery = void 0;
4
+ const anilistAdvancedQuery = () => `query ($page: Int, $id: Int, $type: MediaType, $isAdult: Boolean = false, $search: String, $format: [MediaFormat], $status: MediaStatus, $size: Int, $countryOfOrigin: CountryCode, $source: MediaSource, $season: MediaSeason, $seasonYear: Int, $year: String, $onList: Boolean, $yearLesser: FuzzyDateInt, $yearGreater: FuzzyDateInt, $episodeLesser: Int, $episodeGreater: Int, $durationLesser: Int, $durationGreater: Int, $chapterLesser: Int, $chapterGreater: Int, $volumeLesser: Int, $volumeGreater: Int, $licensedBy: [String], $isLicensed: Boolean, $genres: [String], $excludedGenres: [String], $tags: [String], $excludedTags: [String], $minimumTagRank: Int, $sort: [MediaSort] = [POPULARITY_DESC, SCORE_DESC]) { Page(page: $page, perPage: $size) { pageInfo { total perPage currentPage lastPage hasNextPage } media(id: $id, type: $type, season: $season, format_in: $format, status: $status, countryOfOrigin: $countryOfOrigin, source: $source, search: $search, onList: $onList, seasonYear: $seasonYear, startDate_like: $year, startDate_lesser: $yearLesser, startDate_greater: $yearGreater, episodes_lesser: $episodeLesser, episodes_greater: $episodeGreater, duration_lesser: $durationLesser, duration_greater: $durationGreater, chapters_lesser: $chapterLesser, chapters_greater: $chapterGreater, volumes_lesser: $volumeLesser, volumes_greater: $volumeGreater, licensedBy_in: $licensedBy, isLicensed: $isLicensed, genre_in: $genres, genre_not_in: $excludedGenres, tag_in: $tags, tag_not_in: $excludedTags, minimumTagRank: $minimumTagRank, sort: $sort, isAdult: $isAdult) { id idMal status(version: 2) title { userPreferred romaji english native } bannerImage startDate{year month day} coverImage{ extraLarge large medium color } episodes chapters volumes season popularity description format seasonYear genres averageScore countryOfOrigin nextAiringEpisode { airingAt timeUntilAiring episode } } } }`;
5
+ exports.anilistAdvancedQuery = anilistAdvancedQuery;
6
+ const anilistSearchQuery = (query, page, perPage, type = 'ANIME') => `query ($page: Int = ${page}, $id: Int, $type: MediaType = ${type}, $search: String = "${query}", $isAdult: Boolean = false, $size: Int = ${perPage}) { Page(page: $page, perPage: $size) { pageInfo { total perPage currentPage lastPage hasNextPage } media(id: $id, type: $type, search: $search, isAdult: $isAdult) { id idMal status(version: 2) title { userPreferred romaji english native } bannerImage popularity coverImage{ extraLarge large medium color } episodes format season description seasonYear chapters volumes averageScore genres nextAiringEpisode { airingAt timeUntilAiring episode } } } }`;
7
+ exports.anilistSearchQuery = anilistSearchQuery;
8
+ const anilistMediaDetailQuery = (id) => `query ($id: Int = ${id}) { Media(id: $id) { id idMal title { english native romaji } synonyms countryOfOrigin isLicensed isAdult externalLinks { url site type language } coverImage { extraLarge large color } startDate { year month day } endDate { year month day } bannerImage season seasonYear description type format status(version: 2) episodes duration chapters volumes trailer { id site thumbnail } genres source averageScore popularity meanScore nextAiringEpisode { airingAt timeUntilAiring episode } characters(sort: ROLE) { edges { role node { id name { first middle last full native userPreferred } image { large medium } } voiceActors(sort: LANGUAGE) { id languageV2 name { first middle last full native userPreferred } image { large medium } } } } recommendations { edges { node { id mediaRecommendation { id idMal title { romaji english native userPreferred } status episodes coverImage { extraLarge large medium color } bannerImage format chapters meanScore nextAiringEpisode { episode timeUntilAiring airingAt } } } } } relations { edges { id relationType node { id idMal status coverImage { extraLarge large medium color } bannerImage title { romaji english native userPreferred } episodes chapters format nextAiringEpisode { airingAt timeUntilAiring episode } meanScore } } } studios(isMain: true) { edges { isMain node { id name } } } } }`;
9
+ exports.anilistMediaDetailQuery = anilistMediaDetailQuery;
10
+ const anilistTrendingQuery = (page = 1, perPage = 20, type = 'ANIME') => `query ($page: Int = ${page}, $id: Int, $type: MediaType = ${type}, $isAdult: Boolean = false, $size: Int = ${perPage}, $sort: [MediaSort] = [TRENDING_DESC, POPULARITY_DESC]) { Page(page: $page, perPage: $size) { pageInfo { total perPage currentPage lastPage hasNextPage } media(id: $id, type: $type, isAdult: $isAdult, sort: $sort) { id idMal status(version: 2) title { userPreferred romaji english native } genres trailer { id site thumbnail } description format bannerImage coverImage{ extraLarge large medium color } episodes meanScore duration season seasonYear averageScore nextAiringEpisode { airingAt timeUntilAiring episode } } } }`;
11
+ exports.anilistTrendingQuery = anilistTrendingQuery;
12
+ const anilistPopularQuery = (page = 1, perPage = 20, type = 'ANIME') => `query ($page: Int = ${page}, $id: Int, $type: MediaType = ${type}, $isAdult: Boolean = false, $size: Int = ${perPage}, $sort: [MediaSort] = [POPULARITY_DESC]) { Page(page: $page, perPage: $size) { pageInfo { total perPage currentPage lastPage hasNextPage } media(id: $id, type: $type, isAdult: $isAdult, sort: $sort) { id idMal status(version: 2) title { userPreferred romaji english native } trailer { id site thumbnail } format genres bannerImage description coverImage { extraLarge large medium color } episodes meanScore duration season seasonYear averageScore nextAiringEpisode { airingAt timeUntilAiring episode } } } }`;
13
+ exports.anilistPopularQuery = anilistPopularQuery;
14
+ const anilistGenresQuery = (genres, page = 1, perPage = 20) => `query ($genres: [String] = ${JSON.stringify(genres)}, $page: Int = ${page}, $type: MediaType = ANIME, $isAdult: Boolean = false, $size: Int = ${perPage}) {Page(page: $page, perPage: $size) { pageInfo { total perPage currentPage lastPage hasNextPage } media(type: $type, isAdult: $isAdult, genre_in: $genres) { id idMal status(version: 2) title { userPreferred romaji english native } trailer { id site thumbnail } format bannerImage description coverImage { extraLarge large medium color } episodes meanScore duration season seasonYear averageScore nextAiringEpisode { airingAt timeUntilAiring episode } } } }`;
15
+ exports.anilistGenresQuery = anilistGenresQuery;
16
+ const anilistAiringScheduleQuery = (page = 1, perPage = 20, weekStart, weekEnd, notYetAired) => `query { Page(page: ${page}, perPage: ${perPage}) { pageInfo { total perPage currentPage lastPage hasNextPage } airingSchedules( notYetAired: ${notYetAired}, airingAt_greater: ${weekStart}, airingAt_lesser: ${weekEnd}) { airingAt episode media { id description idMal title { romaji english userPreferred native } countryOfOrigin description popularity bannerImage coverImage { extraLarge large medium color } genres averageScore seasonYear format } } } }`;
17
+ exports.anilistAiringScheduleQuery = anilistAiringScheduleQuery;
18
+ const anilistSiteStatisticsQuery = () => `query { SiteStatistics { anime { nodes { count } } } }`;
19
+ exports.anilistSiteStatisticsQuery = anilistSiteStatisticsQuery;
20
+ const anilistCharacterQuery = () => `query character($id: Int) { Character(id: $id) { id name { first middle last full native userPreferred alternative alternativeSpoiler } image { large medium } description gender dateOfBirth { year month day } bloodType age favourites media { edges { characterRole node { id idMal title { romaji english native userPreferred } coverImage { extraLarge large medium color } averageScore startDate { year month day } episodes format status } } } } }`;
21
+ exports.anilistCharacterQuery = anilistCharacterQuery;
22
+ const anilistStaffQuery = () => `query staff($id: Int, $sort: [MediaSort], $characterPage: Int, $staffPage: Int, $onList: Boolean, $type: MediaType, $withCharacterRoles: Boolean = false, $withStaffRoles: Boolean = false) { Staff(id: $id) { id name { first middle last full native userPreferred alternative } image { large } description favourites isFavourite isFavouriteBlocked age gender yearsActive homeTown bloodType primaryOccupations dateOfBirth { year month day } dateOfDeath { year month day } language: languageV2 characterMedia(page: $characterPage, sort: $sort, onList: $onList) @include(if: $withCharacterRoles) { pageInfo { total perPage currentPage lastPage hasNextPage } edges { characterRole characterName node { id type bannerImage isAdult title { userPreferred } coverImage { large } startDate { year } mediaListEntry { id status } } characters { id name { userPreferred } image { large } } } } staffMedia(page: $staffPage, type: $type, sort: $sort, onList: $onList) @include(if: $withStaffRoles) { pageInfo { total perPage currentPage lastPage hasNextPage } edges { staffRole node { id type isAdult title { userPreferred } coverImage { large } mediaListEntry { id status } } } } } }`;
23
+ exports.anilistStaffQuery = anilistStaffQuery;
24
+ const kitsuSearchQuery = (query) => `query{searchAnimeByTitle(first:5, title:"${query}"){ nodes {id season startDate titles { localized } episodes(first: 2000){ nodes { number createdAt titles { canonical } description thumbnail { original { url } } } } } } }`;
25
+ exports.kitsuSearchQuery = kitsuSearchQuery;
26
+ const anilistStaffInfoQuery = (id) => `query($id: Int = ${id}) { Staff(id: $id) { id name { first last native full } image { large medium } description siteUrl staffMedia { edges { id node { id title { romaji english native } type coverImage { extraLarge large medium color } } } } } }
27
+ `;
28
+ exports.anilistStaffInfoQuery = anilistStaffInfoQuery;
29
+ const anilistFavouritesQuery = () => `query { Viewer { id name about avatar { medium } bannerImage isFollowing isFollower isBlocked bans favourites { anime { nodes { id idMal status(version: 2) title { userPreferred romaji english native } bannerImage coverImage{ extraLarge large medium color } episodes chapters volumes type season popularity description format seasonYear genres averageScore countryOfOrigin nextAiringEpisode { airingAt timeUntilAiring episode } } } manga { nodes { id idMal status(version: 2) title { userPreferred romaji english native } bannerImage coverImage{ extraLarge large medium color } chapters volumes type popularity description format genres averageScore countryOfOrigin } } } } }`;
30
+ exports.anilistFavouritesQuery = anilistFavouritesQuery;
31
+ //# sourceMappingURL=queries.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queries.js","sourceRoot":"","sources":["../../src/utils/queries.ts"],"names":[],"mappings":";;;AAAO,MAAM,oBAAoB,GAAG,GAAG,EAAE,CACvC,22DAA22D,CAAC;AADj2D,QAAA,oBAAoB,wBAC60D;AACv2D,MAAM,kBAAkB,GAAG,CAChC,KAAa,EACb,IAAY,EACZ,OAAe,EACf,OAA0B,OAAO,EACjC,EAAE,CACF,uBAAuB,IAAI,kCAAkC,IAAI,wBAAwB,KAAK,8CAA8C,OAAO,qcAAqc,CAAC;AAN9kB,QAAA,kBAAkB,sBAM4jB;AACplB,MAAM,uBAAuB,GAAG,CAAC,EAAU,EAAE,EAAE,CACpD,qBAAqB,EAAE,ozCAAozC,CAAC;AADj0C,QAAA,uBAAuB,2BAC0yC;AACv0C,MAAM,oBAAoB,GAAG,CAClC,OAAe,CAAC,EAChB,UAAkB,EAAE,EACpB,OAA0B,OAAO,EACjC,EAAE,CACF,uBAAuB,IAAI,kCAAkC,IAAI,6CAA6C,OAAO,6gBAA6gB,CAAC;AALxnB,QAAA,oBAAoB,wBAKomB;AAC9nB,MAAM,mBAAmB,GAAG,CACjC,OAAe,CAAC,EAChB,UAAkB,EAAE,EACpB,OAA0B,OAAO,EACjC,EAAE,CACF,uBAAuB,IAAI,kCAAkC,IAAI,6CAA6C,OAAO,+fAA+f,CAAC;AAL1mB,QAAA,mBAAmB,uBAKulB;AAChnB,MAAM,kBAAkB,GAAG,CAAC,MAAgB,EAAE,OAAe,CAAC,EAAE,UAAkB,EAAE,EAAE,EAAE,CAC7F,8BAA8B,IAAI,CAAC,SAAS,CAC1C,MAAM,CACP,kBAAkB,IAAI,uEAAuE,OAAO,4cAA4c,CAAC;AAHviB,QAAA,kBAAkB,sBAGqhB;AAC7iB,MAAM,0BAA0B,GAAG,CACxC,OAAe,CAAC,EAChB,UAAkB,EAAE,EACpB,SAAiB,EACjB,OAAe,EACf,WAAoB,EACpB,EAAE,CACF,sBAAsB,IAAI,cAAc,OAAO,iGAAiG,WAAW,uBAAuB,SAAS,sBAAsB,OAAO,+OAA+O,CAAC;AAP7b,QAAA,0BAA0B,8BAOma;AACnc,MAAM,0BAA0B,GAAG,GAAG,EAAE,CAAC,wDAAwD,CAAC;AAA5F,QAAA,0BAA0B,8BAAkE;AAClG,MAAM,qBAAqB,GAAG,GAAG,EAAE,CACxC,+bAA+b,CAAC;AADrb,QAAA,qBAAqB,yBACga;AAC3b,MAAM,iBAAiB,GAAG,GAAG,EAAE,CACpC,ipCAAipC,CAAC;AADvoC,QAAA,iBAAiB,qBACsnC;AAC7oC,MAAM,gBAAgB,GAAG,CAAC,KAAa,EAAE,EAAE,CAChD,4CAA4C,KAAK,+KAA+K,CAAC;AADtN,QAAA,gBAAgB,oBACsM;AAC5N,MAAM,qBAAqB,GAAG,CACnC,EAAU,EACV,EAAE,CAAC,oBAAoB,EAAE;CAC1B,CAAC;AAHW,QAAA,qBAAqB,yBAGhC;AAEK,MAAM,sBAAsB,GAAG,GAAG,EAAE,CACzC,qqBAAqqB,CAAC;AAD3pB,QAAA,sBAAsB,0BACqoB"}
@@ -0,0 +1,32 @@
1
+ export declare const USER_AGENT = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36";
2
+ export declare const days: string[];
3
+ export declare const splitAuthor: (authors: string) => string[];
4
+ export declare const floorID: (id: string) => number;
5
+ export declare const formatTitle: (title: string) => string;
6
+ export declare const genElement: (s: string, e: string) => import("cheerio").Cheerio<import("domhandler").AnyNode> | undefined;
7
+ export declare const range: ({ from, to, step, length }: {
8
+ from?: number | undefined;
9
+ to?: number | undefined;
10
+ step?: number | undefined;
11
+ length?: number | undefined;
12
+ }) => number[];
13
+ export declare const capitalizeFirstLetter: (s: string) => string;
14
+ export declare const getDays: (day1: string, day2: string) => number[];
15
+ export declare const isJson: (str: string) => boolean;
16
+ export declare function convertDuration(milliseconds: number): string;
17
+ export declare const compareTwoStrings: (first: string, second: string) => number;
18
+ export declare const substringAfter: (str: string, toFind: string) => string;
19
+ export declare const substringBefore: (str: string, toFind: string) => string;
20
+ export declare const substringAfterLast: (str: string, toFind: string) => string;
21
+ export declare const substringBeforeLast: (str: string, toFind: string) => string;
22
+ export declare const getHashFromImage: (url: string) => "" | "hash";
23
+ export declare const safeUnpack: (packedSource: string) => string;
24
+ export declare const parsePostInfo: (post: string) => {
25
+ year: string;
26
+ size: string;
27
+ description: string;
28
+ };
29
+ export declare function findSimilarTitles(inputTitle: string, titles: any[]): any[];
30
+ export declare function removeSpecialChars(title: string | undefined | null): string;
31
+ export declare function transformSpecificVariations(title: string | undefined | null): string;
32
+ export declare function cleanTitle(title: string | undefined | null): string;