From 6e9e87fddbd3669f32b895ae7586ff739ab8cdef Mon Sep 17 00:00:00 2001 From: 2004durgesh <1032210417@tcetmumbai.in> Date: Sun, 28 Jul 2024 01:18:28 +0530 Subject: [PATCH] feat+docs(dramacool): Implemented fetchPopular and mediaInfo enhancements (#565) * [CodeFactor] Apply fixes to commit fa3a31b * refactor: Rename variable in DramaCool class fetchMediaInfo for clarity * build: Update dist folder and rename imageUrl to image --- dist/providers/movies/dramacool.d.ts | 2 + dist/providers/movies/dramacool.js | 73 +++++++++ dist/providers/movies/dramacool.js.map | 2 +- docs/guides/movies.md | 1 + docs/providers/dramacool.md | 216 +++++++++++++++++++++++++ src/providers/movies/dramacool.ts | 83 ++++++++++ test/movies/dramacool.test.ts | 15 ++ 7 files changed, 391 insertions(+), 1 deletion(-) create mode 100644 docs/providers/dramacool.md diff --git a/dist/providers/movies/dramacool.d.ts b/dist/providers/movies/dramacool.d.ts index d317fb7a1..c7c5308e4 100644 --- a/dist/providers/movies/dramacool.d.ts +++ b/dist/providers/movies/dramacool.d.ts @@ -9,6 +9,8 @@ declare class DramaCool extends MovieParser { fetchMediaInfo: (mediaId: string) => Promise; fetchEpisodeServers(episodeId: string, ...args: any): Promise; fetchEpisodeSources: (episodeId: string, server?: StreamingServers) => Promise; + fetchPopular: (page?: number) => Promise>; private removeContainsFromString; + private cleanUpText; } export default DramaCool; diff --git a/dist/providers/movies/dramacool.js b/dist/providers/movies/dramacool.js index 7016f77d8..2b903095e 100644 --- a/dist/providers/movies/dramacool.js +++ b/dist/providers/movies/dramacool.js @@ -50,6 +50,7 @@ class DramaCool extends models_1.MovieParser { } }; this.fetchMediaInfo = async (mediaId) => { + var _a; try { const realMediaId = mediaId; if (!mediaId.startsWith(this.baseUrl)) @@ -93,6 +94,26 @@ class DramaCool extends models_1.MovieParser { mediaInfo.image = $('div.details > div.img > img').attr('src'); mediaInfo.description = $('div.details div.info p:nth-child(6)').text(); mediaInfo.releaseDate = this.removeContainsFromString($('div.details div.info p:contains("Released:")').text(), 'Released'); + mediaInfo.contentRating = this.removeContainsFromString($('div.details div.info p:contains("Content Rating:")').text(), 'Content Rating'); + mediaInfo.airsOn = this.removeContainsFromString($('div.details div.info p:contains("Airs On:")').text(), 'Airs On'); + mediaInfo.director = this.removeContainsFromString($('div.details div.info p:contains("Director:")').text(), 'Director'); + mediaInfo.originalNetwork = this.cleanUpText(this.removeContainsFromString($('div.details div.info p:contains("Original Network:")').text().trim(), 'Original Network')); + const trailerIframe = $('div.trailer').find('iframe').attr('src'); + mediaInfo.trailer = { + url: trailerIframe, + id: (_a = trailerIframe === null || trailerIframe === void 0 ? void 0 : trailerIframe.split('embed/')[1]) === null || _a === void 0 ? void 0 : _a.split('?')[0], + }; + mediaInfo.characters = []; + $('div.slider-star > div.item').each((i, el) => { + const url = `${this.baseUrl}${$(el).find('a.img').attr('href')}`; + const imageUrl = $(el).find('img').attr('src'); + const name = $(el).find('h3.title').text().trim(); + mediaInfo.characters.push({ + url, + imageUrl, + name, + }); + }); mediaInfo.episodes = []; $('div.content-left > div.block-tab > div > div > ul > li').each((i, el) => { var _a, _b, _c; @@ -151,10 +172,57 @@ class DramaCool extends models_1.MovieParser { throw new Error(err.message); } }; + this.fetchPopular = async (page = 1) => { + try { + const { data } = await this.client.get(`${this.baseUrl}/most-popular-drama?page=${page}`); + const $ = (0, cheerio_1.load)(data); + const popularResult = { + currentPage: page, + totalPages: page, + hasNextPage: false, + results: [], + }; + $('ul.switch-block.list-episode-item') + .find('li') + .each((i, el) => { + var _a; + popularResult.results.push({ + id: (_a = $(el).find('a').attr('href')) === null || _a === void 0 ? void 0 : _a.slice(1), + title: $(el).find('h3.title').text().trim(), + url: `${this.baseUrl}${$(el).find('a').attr('href')}`, + image: $(el).find('img').attr('data-original'), + }); + }); + const navSelector = 'ul.pagination'; + popularResult.hasNextPage = + $(navSelector).length > 0 ? !$(navSelector).children().last().hasClass('selected') : false; + const lastPage = $(navSelector).children().last().find('a').attr('href'); + if (lastPage != undefined && lastPage != '' && lastPage.includes('page=')) { + const maxPage = new URLSearchParams(lastPage).get('page'); + if (maxPage != null && !isNaN(parseInt(maxPage))) + popularResult.totalPages = parseInt(maxPage); + else if (popularResult.hasNextPage) + popularResult.totalPages = page + 1; + } + else if (popularResult.hasNextPage) + popularResult.totalPages = page + 1; + return popularResult; + } + catch (err) { + throw new Error(err.message); + } + }; this.removeContainsFromString = (str, contains) => { contains = contains.toLowerCase(); return str.toLowerCase().replace(/\n/g, '').replace(`${contains}:`, '').trim(); }; + this.cleanUpText = (str) => { + return str + .split(';') + .map(part => part.trim()) + .filter(part => part.length > 0) + .join('; '); + }; } async fetchEpisodeServers(episodeId, ...args) { try { @@ -181,5 +249,10 @@ class DramaCool extends models_1.MovieParser { } } } +//testing fetchPopular via iife +// (async () => { +// const dramaCool = new DramaCool(); +// await dramaCool.fetchPopular(); +// })(); exports.default = DramaCool; //# sourceMappingURL=dramacool.js.map \ No newline at end of file diff --git a/dist/providers/movies/dramacool.js.map b/dist/providers/movies/dramacool.js.map index 65d857dd4..4e827fda3 100644 --- a/dist/providers/movies/dramacool.js.map +++ b/dist/providers/movies/dramacool.js.map @@ -1 +1 @@ -{"version":3,"file":"dramacool.js","sourceRoot":"","sources":["../../../src/providers/movies/dramacool.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"dramacool.js","sourceRoot":"","sources":["../../../src/providers/movies/dramacool.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/docs/guides/movies.md b/docs/guides/movies.md index b100e348e..2bf6b6b31 100644 --- a/docs/guides/movies.md +++ b/docs/guides/movies.md @@ -38,5 +38,6 @@ This list is in alphabetical order. (except the sub bullet points) - [MovieHdWatch](../providers/moviehdwatch.md) - [FlixHQ](../providers/flixhq.md) - [ViewAsian](../providers/viewAsian.md) +- [DramaCool](../providers/dramacool.md)

(back to table of contents)

diff --git a/docs/providers/dramacool.md b/docs/providers/dramacool.md new file mode 100644 index 000000000..b6b2ff4c2 --- /dev/null +++ b/docs/providers/dramacool.md @@ -0,0 +1,216 @@ +

DramaCool

+ +```ts +const dramacool = new MOVIES.DramaCool(); +``` + +

Methods

+ +- [search](#search) +- [fetchMediaInfo](#fetchmediainfo) +- [fetchEpisodeSources](#fetchepisodesources) +- [fetchEpisodeServers](#fetchepisodeservers) +- [fetchPopular](#fetchpopular) + +### search +> Note: This method is a subclass of the [`BaseParser`](https://github.com/consumet/extensions/blob/master/src/models/base-parser.ts) class. meaning it is available across most categories. + + +

Parameters

+ +| Parameter | Type | Description | +| --------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------ | +| query | `string` | query to search for. (*In this case, We're searching for `Vincenzo`*)| +| page (optional) | `number` | page number (default: 1) | + +```ts +dramacool.search("Vincenzo").then(data => { + console.log(data); +}) +``` + +returns a promise which resolves into an array of movies/tv series. (*[`Promise>`](https://github.com/consumet/extensions/blob/master/src/models/types.ts#L233-L241)*)\ +output: +```js +{ + currentPage: 1, // current page number + totalPages: 1, + hasNextPage: false, // boolean to indicate if there's a next page + results: [ + { + id: 'drama-detail/vincenzo', // media id + title: 'Vincenzo (2021)', + url: 'https://dramacool.com.pa/drama-detail/vincenzo', + image: 'https://asianimg.pro/cover/vincenzo.png' + } + ] +} +``` + +### fetchMediaInfo + +

Parameters

+ +| Parameter | Type | Description | +| --------- | -------- | ------------------------------------------------------------------------------------------------------------------------------- | +| mediaId | `string` | takes media id or url as a parameter. (*media id or url can be found in the media search results as shown on the above method*) | + +```ts +dramacool.fetchMediaInfo("drama-detail/vincenzo").then(data => { + console.log(data); +}) +``` + +returns a promise which resolves into an anime info object (including the episodes). (*[`Promise`](https://github.com/consumet/extensions/blob/master/src/models/types.ts#L243-L254)*)\ +output: +```js +{ + id: 'drama-detail/vincenzo', + title: 'Vincenzo (2021)', + status: 'Completed', + genres: ['Comedy', 'Crime','Drama',...], + otherNames: [ '빈센조', 'Binsenjo' ], + image: 'https://asianimg.pro/cover/vincenzo.png', + description: 'At the age of 8, Park Ju Hyeong is adopted and sent off to Italy. Now an adult, he is known as Vincenzo Casano.', + releaseDate: '2021', + contentRating: '', + airsOn: '', + director: 'kim hee won [김희원]', + originalNetwork: 'netflix; tvn', + trailer: { + url: 'https://www.youtube.com/embed/vO8rFbTtJNI', + id: 'vO8rFbTtJNI' + }, + characters: [ + { + url: 'https://dramacool.com.pa/star/ok-taecyeon', + imageUrl: 'https://asianimg.pro/star/ok-taecyeon.png', + title: 'Ok Taecyeon (1988)' + }, + {...}, + ... + ], + episodes: [ + { + id: 'vincenzo-2021-episode-1', + title: 'Episode 1', + episode: 1, + subType: 'SUB', + releaseDate: '2021-02-20 07:17:21', + url: 'https://dramacool.com.pa/vincenzo-2021-episode-1.html' + }, + {...}, + ... + ] +} +``` + +### fetchEpisodeSources + +

Parameters

+ +| Parameter | Type | Description | +| ----------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | +| episodeId | `string` | takes episode id as a parameter. (*episode id can be found in the media info object*) | +| server (optional) | [`StreamingServers`](https://github.com/consumet/extensions/blob/master/src/models/types.ts#L144-L157) | takes server enum as a parameter. *default: [`StreamingServers.AsianLoad`](https://github.com/consumet/extensions/blob/master/src/models/types.ts#L150)* | + + +```ts +dramacool.fetchEpisodeSources("vincenzo-2021-episode-1").then(data => { + console.log(data); +}) +``` +returns a promise which resolves into an array of episode sources and subtitles. (*[`Promise`](https://github.com/consumet/extensions/blob/master/src/models/types.ts#L300-L306)*)\ +output: +```js +{ + sources: [ + { + url: 'https://hls017.vipdracdn.net/streamhls2024/db287e9dc37d8c5b67c2498e3ef07c5a/ep.1.v0.1678048676.m3u8', + isM3U8: true + }, + { + url: 'https://hls017.drafastcdn.pro/newvideos/newhls/sfRdQu0XQEJlsVGMH1S5nA/1721846640/230926_202.179.72.206/db287e9dc37d8c5b67c2498e3ef07c5a/ep.1.v0.1678048676.m3u8', + isM3U8: true + } + ], + subtitles: [ + { + url: 'https://asiancdn.com/images/db287e9dc37d8c5b67c2498e3ef07c5a/1.vtt', + lang: 'Default (maybe)' + } + ] +} +``` + +### fetchEpisodeServers + +

Parameters

+ +| Parameter | Type | Description | +| --------- | -------- | ------------------------------------------------------------------------------------------------------------- | +| episodeId | `string` | take an episode id or url as a parameter. (*episode id or episode url can be found in the media info object*) | + + +```ts +dramacool.fetchEpisodeServers("vincenzo-2021-episode-1").then(data => { + console.log(data); +}) +``` +returns a promise which resolves into an array of episode servers. (*[`Promise`](https://github.com/consumet/extensions/blob/master/src/models/types.ts#L115-L118)*)\ +output: +```js +[ + { + name: 'asianload', + url: 'https://plcool1.com/pl454545?id=MjMwOTI2&title=Vincenzo+%282021%29+episode+1&typesub=SUB' + }, + { + name: 'kvid', + url: 'https://plcool1.com/embedplus?id=MjMwOTI2&token=SGWtnrSwuIw3RsQGPe5tRg&expires=1721846948' + }, + { name: 'asianstream', url: '7YE2aUb7PNVD3bY8NDIYqg' }, + { name: 'streamwish', url: 'https://dwish.pro/e/dr1qk2hew1v8' }, + { + name: 'streamtape', + url: 'https://streamtape.com/e/plglOyRJPaTrOGP/vincenzo-2021-episode-1.mp4' + }, + { name: 'doodstream', url: 'https://dood.wf/e/zh9uj55c901a' }, + { name: 'vidhide', url: 'https://dlions.pro/v/7thb1yedp816' } +] +``` + +

(back to movie providers list)

+ +### fetchPopular + +```ts +dramacool.fetchPopular.then(data => { + console.log(data); +}) +``` + +returns a promise which resolves into an array of movies. (*[`Promise>`](https://github.com/consumet/extensions/blob/master/src/models/types.ts#L328-L336)*)\ +output: +```js +{ + currentPage: 1, + totalPages: 741, + hasNextPage: true, + results: [ + { + id: 'drama-detail/is-it-fate', + title: "Serendipity's Embrace (2024)", + url: 'https://dramacool.com.pa/drama-detail/is-it-fate', + image: 'https://asianimg.pro/cover/is-it-fate-1719896631.png' + }, + { + id: 'drama-detail/open-murder-contract', + title: 'No Way Out: The Roulette (2024)', + url: 'https://dramacool.com.pa/drama-detail/open-murder-contract', + image: 'https://asianimg.pro/cover/open-murder-contract-1720405656.png' + }, + {...} + ] +} +``` \ No newline at end of file diff --git a/src/providers/movies/dramacool.ts b/src/providers/movies/dramacool.ts index 772542368..3336d7712 100644 --- a/src/providers/movies/dramacool.ts +++ b/src/providers/movies/dramacool.ts @@ -112,6 +112,40 @@ class DramaCool extends MovieParser { $('div.details div.info p:contains("Released:")').text(), 'Released' ); + mediaInfo.contentRating = this.removeContainsFromString( + $('div.details div.info p:contains("Content Rating:")').text(), + 'Content Rating' + ); + mediaInfo.airsOn = this.removeContainsFromString( + $('div.details div.info p:contains("Airs On:")').text(), + 'Airs On' + ); + mediaInfo.director = this.removeContainsFromString( + $('div.details div.info p:contains("Director:")').text(), + 'Director' + ); + mediaInfo.originalNetwork = this.cleanUpText(this.removeContainsFromString( + $('div.details div.info p:contains("Original Network:")').text().trim(), + 'Original Network' + )); + + const trailerIframe = $('div.trailer').find('iframe').attr('src'); + mediaInfo.trailer = { + url: trailerIframe, + id: trailerIframe?.split('embed/')[1]?.split('?')[0], + }; + mediaInfo.characters = []; + $('div.slider-star > div.item').each((i, el) => { + const url = `${this.baseUrl}${$(el).find('a.img').attr('href')}`; + const image = $(el).find('img').attr('src'); + const name = $(el).find('h3.title').text().trim(); + + (mediaInfo.characters as any[]).push({ + url, + image, + name, + }); + }); mediaInfo.episodes = []; $('div.content-left > div.block-tab > div > div > ul > li').each((i, el) => { @@ -207,10 +241,59 @@ class DramaCool extends MovieParser { } }; + fetchPopular = async (page: number = 1): Promise> => { + try { + const { data } = await this.client.get(`${this.baseUrl}/most-popular-drama?page=${page}`); + const $ = load(data); + const popularResult: ISearch = { + currentPage: page, + totalPages: page, + hasNextPage: false, + results: [], + }; + $('ul.switch-block.list-episode-item') + .find('li') + .each((i, el) => { + popularResult.results.push({ + id: $(el).find('a').attr('href')?.slice(1)!, + title: $(el).find('h3.title').text().trim(), + url: `${this.baseUrl}${$(el).find('a').attr('href')}`, + image: $(el).find('img').attr('data-original'), + }); + }); + const navSelector = 'ul.pagination'; + + popularResult.hasNextPage = + $(navSelector).length > 0 ? !$(navSelector).children().last().hasClass('selected') : false; + + const lastPage = $(navSelector).children().last().find('a').attr('href'); + if (lastPage != undefined && lastPage != '' && lastPage.includes('page=')) { + const maxPage = new URLSearchParams(lastPage).get('page'); + if (maxPage != null && !isNaN(parseInt(maxPage))) popularResult.totalPages = parseInt(maxPage); + else if (popularResult.hasNextPage) popularResult.totalPages = page + 1; + } else if (popularResult.hasNextPage) popularResult.totalPages = page + 1; + return popularResult; + } catch (err) { + throw new Error((err as Error).message); + } + }; + private removeContainsFromString = (str: string, contains: string) => { contains = contains.toLowerCase(); return str.toLowerCase().replace(/\n/g, '').replace(`${contains}:`, '').trim(); }; + private cleanUpText = (str: string) => { + return str + .split(';') + .map(part => part.trim()) + .filter(part => part.length > 0) + .join('; '); + }; } +//testing fetchPopular via iife +// (async () => { +// const dramaCool = new DramaCool(); +// await dramaCool.fetchPopular(); +// })(); export default DramaCool; diff --git a/test/movies/dramacool.test.ts b/test/movies/dramacool.test.ts index f69f90a56..ba4fe0ba3 100644 --- a/test/movies/dramacool.test.ts +++ b/test/movies/dramacool.test.ts @@ -45,3 +45,18 @@ test('Search: returns totalPages when search: Love.', async () => { const data = await dramaCool.search('Love'); expect(data.totalPages).not.toEqual(1); }); + +test('fetchPopular: returns a filled array of popular movies/TV.',async () => { + const data = await dramaCool.fetchPopular(); + expect(data.results).not.toEqual([]); +}); + +test('fetchMediaInfo:returns content-rating, airs-on, director, original-network,trailer, characters',async () => { + const data = await dramaCool.fetchMediaInfo('drama-detail/vincenzo'); + expect(data.contentRating).not.toEqual(undefined); + expect(data.airsOn).not.toEqual(undefined); + expect(data.director).not.toEqual(undefined); + expect(data.originalNetwork).not.toEqual(undefined); + expect(data.trailer).not.toEqual(undefined); + expect(data.characters).not.toEqual([]); +}) \ No newline at end of file