From ccb029db1db2cf9ad5ce26f54c7469521bd0aa91 Mon Sep 17 00:00:00 2001 From: memecornucopia Date: Thu, 1 Feb 2024 12:19:28 -0500 Subject: [PATCH 01/16] Fix Goojara Scraping and Capitilization --- src/providers/sources/goojara/index.ts | 4 ++-- src/providers/sources/goojara/util.ts | 19 +++---------------- 2 files changed, 5 insertions(+), 18 deletions(-) diff --git a/src/providers/sources/goojara/index.ts b/src/providers/sources/goojara/index.ts index ea85d3d..e0f1860 100644 --- a/src/providers/sources/goojara/index.ts +++ b/src/providers/sources/goojara/index.ts @@ -20,8 +20,8 @@ async function universalScraper(ctx: ShowScrapeContext | MovieScrapeContext): Pr } export const goojaraScraper = makeSourcerer({ - id: 'goojara', - name: 'goojara', + id: 'Goojara', + name: 'Goojara', rank: 225, flags: [], scrapeShow: universalScraper, diff --git a/src/providers/sources/goojara/util.ts b/src/providers/sources/goojara/util.ts index 30d63a9..857ec0b 100644 --- a/src/providers/sources/goojara/util.ts +++ b/src/providers/sources/goojara/util.ts @@ -49,7 +49,6 @@ export async function searchAndFindMedia( }); const result = results.find((res: Result) => compareMedia(media, res.title, Number(res.year))); - return result; } @@ -67,29 +66,17 @@ export async function scrapeIds( baseUrl, headers: headersData, method: 'GET', - }); - - const $1 = load(data); - - const dataId = $1('#seon').attr('data-id'); - - if (!dataId) throw new NotFoundError('Not found'); - - data = await ctx.fetcher(`/xhrc.php`, { - baseUrl, - headers: headersData, - method: 'POST', - body: new URLSearchParams({ s: media.season.number.toString(), t: dataId }), + query: { s: media.season.number.toString() }, }); let episodeId = ''; const $2 = load(data); - $2('.seho').each((index, element) => { + $2('.seho').each((_index: any, element: any) => { // Extracting the episode number as a string const episodeNumber = $2(element).find('.seep .sea').text().trim(); - + console.log(episodeNumber); // Comparing with the desired episode number as a string if (parseInt(episodeNumber, 10) === media.episode.number) { const href = $2(element).find('.snfo h1 a').attr('href'); From ac2261bbd11ee3ac92dbc25e852a3421d2434951 Mon Sep 17 00:00:00 2001 From: memecornucopia Date: Thu, 1 Feb 2024 14:34:11 -0500 Subject: [PATCH 02/16] Fix Wootly, Fix Goojara, Fix Id. --- src/providers/embeds/dood.ts | 3 +-- src/providers/embeds/wootly.ts | 27 ++++++++++++++++++---- src/providers/sources/goojara/getEmbeds.ts | 21 +++++++++++------ src/providers/sources/goojara/index.ts | 2 +- src/providers/sources/goojara/util.ts | 3 +-- 5 files changed, 39 insertions(+), 17 deletions(-) diff --git a/src/providers/embeds/dood.ts b/src/providers/embeds/dood.ts index faa79d8..7a5fba1 100644 --- a/src/providers/embeds/dood.ts +++ b/src/providers/embeds/dood.ts @@ -21,14 +21,13 @@ export const doodScraper = makeEmbed({ const dataForLater = doodData.match(/a\+"\?token=([^"]+)/)?.[1]; const path = doodData.match(/\$\.get\('\/pass_md5([^']+)/)?.[1]; - const doodPage = await ctx.proxiedFetcher(`/pass_md5/${path}`, { + const doodPage = await ctx.proxiedFetcher(`/pass_md5${path}`, { headers: { referer: `${baseUrl}/e/${id}`, }, method: 'GET', baseUrl, }); - const downloadURL = `${doodPage}${nanoid()}?token=${dataForLater}${Date.now()}`; return { diff --git a/src/providers/embeds/wootly.ts b/src/providers/embeds/wootly.ts index 0119926..3d75cbb 100644 --- a/src/providers/embeds/wootly.ts +++ b/src/providers/embeds/wootly.ts @@ -17,7 +17,13 @@ export const wootlyScraper = makeEmbed({ }); const cookies = parseSetCookie(wootlyData.headers.get('Set-Cookie') || ''); - const wootssesCookie = cookies.wootsses.value; + let wootssesCookie = ''; + let cookie = ''; + + if (cookies && cookies.wootsses) { + wootssesCookie = cookies.wootsses.value; + cookie = makeCookieHeader({ wootsses: wootssesCookie }); + } let $ = load(wootlyData.body); // load the html data const iframeSrc = $('iframe').attr('src') ?? ''; @@ -26,18 +32,24 @@ export const wootlyScraper = makeEmbed({ method: 'GET', readHeaders: ['Set-Cookie'], headers: { - cookie: makeCookieHeader({ wootsses: wootssesCookie }), + cookie, }, }); const woozCookies = parseSetCookie(woozCookieRequest.headers.get('Set-Cookie') || ''); - const woozCookie = woozCookies.wooz.value; + let woozCookie = ''; + cookie = ''; + + if (cookies && woozCookies.wooz) { + woozCookie = woozCookies.wooz.value; + cookie = makeCookieHeader({ wooz: woozCookie }); + } const iframeData = await ctx.proxiedFetcher(iframeSrc, { method: 'POST', body: new URLSearchParams({ qdf: '1' }), headers: { - cookie: makeCookieHeader({ wooz: woozCookie }), + cookie, Referer: iframeSrc, }, }); @@ -51,13 +63,18 @@ export const wootlyScraper = makeEmbed({ const vd = scriptText.match(/vd=([^,]+)/)?.[0].replace(/vd=|["\s]/g, ''); if (!tk || !vd) throw new Error('wootly source not found'); + cookie = ''; + + if (woozCookie && wootssesCookie !== '') { + cookie = makeCookieHeader({ wooz: woozCookie, wootsses: wootssesCookie }); + } const url = await ctx.proxiedFetcher(`/grabd`, { baseUrl, query: { t: tk, id: vd }, method: 'GET', headers: { - cookie: makeCookieHeader({ wooz: woozCookie, wootsses: wootssesCookie }), + cookie, }, }); diff --git a/src/providers/sources/goojara/getEmbeds.ts b/src/providers/sources/goojara/getEmbeds.ts index 50f574a..7b26d6c 100644 --- a/src/providers/sources/goojara/getEmbeds.ts +++ b/src/providers/sources/goojara/getEmbeds.ts @@ -10,18 +10,28 @@ export async function getEmbeds(ctx: ScrapeContext, id: string): Promise $(element).attr('href')) .get() @@ -33,10 +43,7 @@ export async function getEmbeds(ctx: ScrapeContext, id: string): Promise { + $2('.seho').each((index, element) => { // Extracting the episode number as a string const episodeNumber = $2(element).find('.seep .sea').text().trim(); - console.log(episodeNumber); // Comparing with the desired episode number as a string if (parseInt(episodeNumber, 10) === media.episode.number) { const href = $2(element).find('.snfo h1 a').attr('href'); From 2c343968977a49a05e2df462f6dd15dab847883f Mon Sep 17 00:00:00 2001 From: Jorrin Date: Tue, 13 Feb 2024 18:34:29 +0100 Subject: [PATCH 03/16] fix closeload scraper --- src/providers/embeds/closeload.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/providers/embeds/closeload.ts b/src/providers/embeds/closeload.ts index 0235a49..811323a 100644 --- a/src/providers/embeds/closeload.ts +++ b/src/providers/embeds/closeload.ts @@ -43,7 +43,7 @@ export const closeLoadScraper = makeEmbed({ const evalCode = iframeRes$('script') .filter((_, el) => { const script = iframeRes$(el); - return (script.attr('type') === 'text/javascript' && script.html()?.includes('eval')) ?? false; + return (script.attr('type') === 'text/javascript' && script.html()?.includes('p,a,c,k,e,d')) ?? false; }) .html(); if (!evalCode) throw new Error("Couldn't find eval code"); From 5161c6ed864ed6bd7b522d57e29ab72a94702c3f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 16 Feb 2024 18:20:42 +0000 Subject: [PATCH 04/16] Bump undici from 5.27.2 to 5.28.3 in /.docs Bumps [undici](https://github.com/nodejs/undici) from 5.27.2 to 5.28.3. - [Release notes](https://github.com/nodejs/undici/releases) - [Commits](https://github.com/nodejs/undici/compare/v5.27.2...v5.28.3) --- updated-dependencies: - dependency-name: undici dependency-type: indirect ... Signed-off-by: dependabot[bot] --- .docs/package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.docs/package-lock.json b/.docs/package-lock.json index 11e9e1a..6f3e4ec 100644 --- a/.docs/package-lock.json +++ b/.docs/package-lock.json @@ -16642,9 +16642,9 @@ } }, "node_modules/undici": { - "version": "5.27.2", - "resolved": "https://registry.npmjs.org/undici/-/undici-5.27.2.tgz", - "integrity": "sha512-iS857PdOEy/y3wlM3yRp+6SNQQ6xU0mmZcwRSriqk+et/cwWAtwmIGf6WkoDN2EK/AMdCO/dfXzIwi+rFMrjjQ==", + "version": "5.28.3", + "resolved": "https://registry.npmjs.org/undici/-/undici-5.28.3.tgz", + "integrity": "sha512-3ItfzbrhDlINjaP0duwnNsKpDQk3acHI3gVJ1z4fmwMK31k5G9OVIAMLSIaP6w4FaGkaAkN6zaQO9LUvZ1t7VA==", "dev": true, "dependencies": { "@fastify/busboy": "^2.0.0" From 8e4a87421c41ea34906dc6e7b7a4512c2d2b1d70 Mon Sep 17 00:00:00 2001 From: memecornucopia Date: Sat, 17 Feb 2024 16:41:19 -0500 Subject: [PATCH 05/16] Final Fixes --- src/providers/embeds/dood.ts | 10 +++++----- src/providers/embeds/wootly.ts | 27 +++++---------------------- 2 files changed, 10 insertions(+), 27 deletions(-) diff --git a/src/providers/embeds/dood.ts b/src/providers/embeds/dood.ts index 7a5fba1..3dd5d05 100644 --- a/src/providers/embeds/dood.ts +++ b/src/providers/embeds/dood.ts @@ -9,7 +9,7 @@ export const doodScraper = makeEmbed({ name: 'dood', rank: 173, async scrape(ctx) { - const baseUrl = 'https://do0od.com'; + const baseUrl = 'https://d0000d.com'; const id = ctx.url.split('/d/')[1] || ctx.url.split('/e/')[1]; @@ -18,17 +18,17 @@ export const doodScraper = makeEmbed({ baseUrl, }); - const dataForLater = doodData.match(/a\+"\?token=([^"]+)/)?.[1]; + const dataForLater = doodData.match(/\?token=([^&]+)&expiry=/)?.[1]; const path = doodData.match(/\$\.get\('\/pass_md5([^']+)/)?.[1]; const doodPage = await ctx.proxiedFetcher(`/pass_md5${path}`, { headers: { - referer: `${baseUrl}/e/${id}`, + Referer: `${baseUrl}/e/${id}`, }, method: 'GET', baseUrl, }); - const downloadURL = `${doodPage}${nanoid()}?token=${dataForLater}${Date.now()}`; + const downloadURL = `${doodPage}${nanoid()}?token=${dataForLater}&expiry=${Date.now()}`; return { stream: [ @@ -42,7 +42,7 @@ export const doodScraper = makeEmbed({ type: 'mp4', url: downloadURL, headers: { - referer: 'https://do0od.com/', + Referer: 'https://d0000d.com/', }, }, }, diff --git a/src/providers/embeds/wootly.ts b/src/providers/embeds/wootly.ts index 3d75cbb..0119926 100644 --- a/src/providers/embeds/wootly.ts +++ b/src/providers/embeds/wootly.ts @@ -17,13 +17,7 @@ export const wootlyScraper = makeEmbed({ }); const cookies = parseSetCookie(wootlyData.headers.get('Set-Cookie') || ''); - let wootssesCookie = ''; - let cookie = ''; - - if (cookies && cookies.wootsses) { - wootssesCookie = cookies.wootsses.value; - cookie = makeCookieHeader({ wootsses: wootssesCookie }); - } + const wootssesCookie = cookies.wootsses.value; let $ = load(wootlyData.body); // load the html data const iframeSrc = $('iframe').attr('src') ?? ''; @@ -32,24 +26,18 @@ export const wootlyScraper = makeEmbed({ method: 'GET', readHeaders: ['Set-Cookie'], headers: { - cookie, + cookie: makeCookieHeader({ wootsses: wootssesCookie }), }, }); const woozCookies = parseSetCookie(woozCookieRequest.headers.get('Set-Cookie') || ''); - let woozCookie = ''; - cookie = ''; - - if (cookies && woozCookies.wooz) { - woozCookie = woozCookies.wooz.value; - cookie = makeCookieHeader({ wooz: woozCookie }); - } + const woozCookie = woozCookies.wooz.value; const iframeData = await ctx.proxiedFetcher(iframeSrc, { method: 'POST', body: new URLSearchParams({ qdf: '1' }), headers: { - cookie, + cookie: makeCookieHeader({ wooz: woozCookie }), Referer: iframeSrc, }, }); @@ -63,18 +51,13 @@ export const wootlyScraper = makeEmbed({ const vd = scriptText.match(/vd=([^,]+)/)?.[0].replace(/vd=|["\s]/g, ''); if (!tk || !vd) throw new Error('wootly source not found'); - cookie = ''; - - if (woozCookie && wootssesCookie !== '') { - cookie = makeCookieHeader({ wooz: woozCookie, wootsses: wootssesCookie }); - } const url = await ctx.proxiedFetcher(`/grabd`, { baseUrl, query: { t: tk, id: vd }, method: 'GET', headers: { - cookie, + cookie: makeCookieHeader({ wooz: woozCookie, wootsses: wootssesCookie }), }, }); From 8a39e6ae59e0b3efff2b6261f2a3e8c96b7ec340 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 21 Feb 2024 01:39:02 +0000 Subject: [PATCH 06/16] Bump ip from 2.0.0 to 2.0.1 in /.docs Bumps [ip](https://github.com/indutny/node-ip) from 2.0.0 to 2.0.1. - [Commits](https://github.com/indutny/node-ip/compare/v2.0.0...v2.0.1) --- updated-dependencies: - dependency-name: ip dependency-type: indirect ... Signed-off-by: dependabot[bot] --- .docs/package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.docs/package-lock.json b/.docs/package-lock.json index 11e9e1a..6bfe1e9 100644 --- a/.docs/package-lock.json +++ b/.docs/package-lock.json @@ -7627,9 +7627,9 @@ } }, "node_modules/ip": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", - "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.1.tgz", + "integrity": "sha512-lJUL9imLTNi1ZfXT+DU6rBBdbiKGBuay9B6xGSPVjUeQwaH1RIGqef8RZkUtHioLmSNpPR5M4HVKJGm1j8FWVQ==", "dev": true }, "node_modules/iron-webcrypto": { From 234c5108acd44f9bad5e0f20f4b3399afbe8cc28 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 21 Feb 2024 03:03:12 +0000 Subject: [PATCH 07/16] Bump ip from 1.1.8 to 1.1.9 Bumps [ip](https://github.com/indutny/node-ip) from 1.1.8 to 1.1.9. - [Commits](https://github.com/indutny/node-ip/compare/v1.1.8...v1.1.9) --- updated-dependencies: - dependency-name: ip dependency-type: indirect ... Signed-off-by: dependabot[bot] --- package-lock.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/package-lock.json b/package-lock.json index 033f07f..1fc4ea9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3357,9 +3357,9 @@ } }, "node_modules/ip": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz", - "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==", + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.9.tgz", + "integrity": "sha512-cyRxvOEpNHNtchU3Ln9KC/auJgup87llfQpQ+t5ghoC/UhL16SWzbueiCsdTnWmqAWl7LadfuwhlqmtOaqMHdQ==", "dev": true }, "node_modules/is-array-buffer": { @@ -4937,9 +4937,9 @@ } }, "node_modules/socks/node_modules/ip": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", - "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.1.tgz", + "integrity": "sha512-lJUL9imLTNi1ZfXT+DU6rBBdbiKGBuay9B6xGSPVjUeQwaH1RIGqef8RZkUtHioLmSNpPR5M4HVKJGm1j8FWVQ==", "dev": true }, "node_modules/source-map": { From 5a937abcaf374e5d4eb2ed6d57ef35ab9b0f394c Mon Sep 17 00:00:00 2001 From: William Oldham Date: Fri, 23 Feb 2024 08:38:14 +0000 Subject: [PATCH 08/16] Update base path of docs --- .github/workflows/docs.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 77bcad9..5efefb7 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -26,6 +26,8 @@ jobs: - name: Build project working-directory: ./.docs run: npm run generate + env: + NUXT_APP_BASE_URL: /providers/ - name: Upload production-ready build files uses: actions/upload-pages-artifact@v1 From 6445906453732ef429a9c0dfe48f434cd51eba8e Mon Sep 17 00:00:00 2001 From: William Oldham Date: Fri, 23 Feb 2024 08:40:28 +0000 Subject: [PATCH 09/16] Bump version --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 3ea5af9..9b71320 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@movie-web/providers", - "version": "2.2.0", + "version": "2.2.1", "description": "Package that contains all the providers of movie-web", "main": "./lib/index.umd.js", "types": "./lib/index.d.ts", From 66b9004af9c75c06c6b593d7fa561c1e7a7aa88d Mon Sep 17 00:00:00 2001 From: William Oldham Date: Fri, 23 Feb 2024 08:42:13 +0000 Subject: [PATCH 10/16] Update 4.changelog.md --- .docs/content/1.get-started/4.changelog.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.docs/content/1.get-started/4.changelog.md b/.docs/content/1.get-started/4.changelog.md index 1e18e51..9464b1e 100644 --- a/.docs/content/1.get-started/4.changelog.md +++ b/.docs/content/1.get-started/4.changelog.md @@ -2,6 +2,9 @@ title: 'Changelog' --- +# Version 2.2.1 +- Fixed Closeload scraper + # Version 2.2.0 - Fixed vidsrc.me URL decoding. - Added ridomovies with Ridoo and Closeload embed. From 66b27ef21ee67f5aa39da33338c33e241922f8a3 Mon Sep 17 00:00:00 2001 From: Screeching Bagel Date: Sun, 25 Feb 2024 17:33:53 -0800 Subject: [PATCH 11/16] update docs links in README.md updated to https://movie-web.github.io/providers/ --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index a0cadad..ebc7991 100644 --- a/README.md +++ b/README.md @@ -7,8 +7,8 @@ features: - scrape popular streaming websites - works in both browser and server-side -Visit documentation here: https://providers.docs.movie-web.app/ +Visit documentation here: https://movie-web.github.io/providers/ ## How to run locally or test my changes -These topics are also covered in the documentation, [read about it here](https://providers.docs.movie-web.app/extra-topics/development). +These topics are also covered in the documentation, [read about it here](https://movie-web.github.io/providers/extra-topics/development). From e0bb7d5a3010a0b2e8da699a02019b431be6a05a Mon Sep 17 00:00:00 2001 From: Screeching Bagel Date: Mon, 26 Feb 2024 01:02:48 -0800 Subject: [PATCH 12/16] Update 0.usage-on-x.md another mention --- .docs/content/2.essentials/0.usage-on-x.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.docs/content/2.essentials/0.usage-on-x.md b/.docs/content/2.essentials/0.usage-on-x.md index 5294be4..0c7443d 100644 --- a/.docs/content/2.essentials/0.usage-on-x.md +++ b/.docs/content/2.essentials/0.usage-on-x.md @@ -17,7 +17,7 @@ import { makeProviders, makeStandardFetcher, targets } from '@movie-web/provider const providers = makeProviders({ fetcher: makeStandardFetcher(fetch), - target: chooseYourself, // check out https://providers.docs.movie-web.app/essentials/targets + target: chooseYourself, // check out https://movie-web.github.io/providers/essentials/targets }) ``` From ad2ee21c00ac3993cf47a1641aa59bd1224235b0 Mon Sep 17 00:00:00 2001 From: Screeching Bagel Date: Mon, 26 Feb 2024 01:17:28 -0800 Subject: [PATCH 13/16] Update SECURITY.md (#1) updated the discord link, but the rest needs more thought --- .github/SECURITY.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/SECURITY.md b/.github/SECURITY.md index c8ee568..11b0a2a 100644 --- a/.github/SECURITY.md +++ b/.github/SECURITY.md @@ -11,4 +11,4 @@ Support is not provided for any forks or mirrors of movie-web. There are two ways you can contact the movie-web maintainers to report a vulnerability: - Email [security@movie-web.app](mailto:security@movie-web.app) - - Report the vulnerability in the [movie-web Discord server](https://discord.movie-web.app) + - Report the vulnerability in the [movie-web Discord server](https://discord.gg/gQYB6fGArX) From b5dcd7d1339333133fee8b7ee558b6e1b5cb1711 Mon Sep 17 00:00:00 2001 From: Screeching Bagel Date: Mon, 26 Feb 2024 01:18:53 -0800 Subject: [PATCH 14/16] Update 0.introduction.md (#2) another mention but i did take some liberty with that one --- .docs/content/1.get-started/0.introduction.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.docs/content/1.get-started/0.introduction.md b/.docs/content/1.get-started/0.introduction.md index eb21056..6807b20 100644 --- a/.docs/content/1.get-started/0.introduction.md +++ b/.docs/content/1.get-started/0.introduction.md @@ -2,7 +2,7 @@ ## What is `@movie-web/providers`? -`@movie-web/providers` is the soul of [movie-web.app](https://movie-web.app). It's a collection of scrapers of various streaming sites. It extracts the raw streams from those sites, so you can watch them without any extra fluff from the original sites. +`@movie-web/providers` is the soul of [movie-web](https://github.com/movie-web/movie-web). It's a collection of scrapers of various streaming sites. It extracts the raw streams from those sites, so you can watch them without any extra fluff from the original sites. ## What can I use this on? From 5df9123edb518c26bb3dc0315a2b1c0c1740ba70 Mon Sep 17 00:00:00 2001 From: Screeching Bagel Date: Mon, 26 Feb 2024 01:19:48 -0800 Subject: [PATCH 15/16] Update package.json (#3) anotherr mention --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 9b71320..df4367e 100644 --- a/package.json +++ b/package.json @@ -32,7 +32,7 @@ "bugs": { "url": "https://github.com/movie-web/providers/issues" }, - "homepage": "https://providers.docs.movie-web.app/", + "homepage": "https://movie-web.github.io/providers/", "scripts": { "build": "vite build && tsc --noEmit", "cli": "ts-node ./src/dev-cli/index.ts", From b2f372fbb979fe9ef03fb0a5dc20317f73cb5c03 Mon Sep 17 00:00:00 2001 From: Jorrin <43169049+JorrinKievit@users.noreply.github.com> Date: Wed, 28 Feb 2024 00:02:21 +0100 Subject: [PATCH 16/16] fix ridomovies not working for some sources --- package-lock.json | 4 ++-- src/providers/sources/ridomovies/index.ts | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index 1fc4ea9..3b07825 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@movie-web/providers", - "version": "2.2.0", + "version": "2.2.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@movie-web/providers", - "version": "2.2.0", + "version": "2.2.1", "license": "MIT", "dependencies": { "cheerio": "^1.0.0-rc.12", diff --git a/src/providers/sources/ridomovies/index.ts b/src/providers/sources/ridomovies/index.ts index f028875..fba442a 100644 --- a/src/providers/sources/ridomovies/index.ts +++ b/src/providers/sources/ridomovies/index.ts @@ -28,9 +28,9 @@ const universalScraper = async (ctx: MovieScrapeContext | ShowScrapeContext) => const showPageResult = await ctx.proxiedFetcher(`/${show.fullSlug}`, { baseUrl: ridoMoviesBase, }); - const fullEpisodeSlug = `${show.fullSlug}/season-${ctx.media.season.number}/episode-${ctx.media.episode.number}`; + const fullEpisodeSlug = `season-${ctx.media.season.number}/episode-${ctx.media.episode.number}`; const regexPattern = new RegExp( - `\\\\"id\\\\":\\\\"(\\d+)\\\\"(?=.*?\\\\\\"fullSlug\\\\\\":\\\\\\"${fullEpisodeSlug}\\\\\\")`, + `\\\\"id\\\\":\\\\"(\\d+)\\\\"(?=.*?\\\\\\"fullSlug\\\\\\":\\\\\\"[^"]*${fullEpisodeSlug}[^"]*\\\\\\")`, 'g', ); const matches = [...showPageResult.matchAll(regexPattern)];