From c88b3798f03974183666e7b0e6c3806aae477925 Mon Sep 17 00:00:00 2001 From: WebStreamr <210764791+webstreamr@users.noreply.github.com> Date: Wed, 15 Oct 2025 20:16:56 +0000 Subject: [PATCH] fix(source): switch from imdb to tmdb search for CineHDPlus --- src/source/CineHDPlus.test.ts | 12 +- src/source/CineHDPlus.ts | 16 +- ...liculas19678-babylon-5-ver-online-hd.html} | 114 ++++---- ...culas9582-black-mirror-ver-online-hd.html} | 104 ++++--- ...tory12345678anddosearchandsubactionsearch} | 252 ++++++++--------- ...iesstory3137anddosearchandsubactionsearch} | 256 +++++++++--------- ...esstory42009anddosearchandsubactionsearch} | 256 +++++++++--------- .../__snapshots__/CineHDPlus.test.ts.snap | 8 +- 8 files changed, 525 insertions(+), 493 deletions(-) rename src/source/__fixtures__/CineHDPlus/{https:cinehdplus.campeliculas19678-babylon-5-ver-online-hd.html => https:cinehdplus.gratispeliculas19678-babylon-5-ver-online-hd.html} (96%) rename src/source/__fixtures__/CineHDPlus/{https:cinehdplus.campeliculas9582-black-mirror-ver-online-hd.html => https:cinehdplus.gratispeliculas9582-black-mirror-ver-online-hd.html} (93%) rename src/source/__fixtures__/CineHDPlus/{https:cinehdplus.camseriesstorytt12345678anddosearchandsubactionsearch => https:cinehdplus.gratisseriesstory12345678anddosearchandsubactionsearch} (76%) rename src/source/__fixtures__/CineHDPlus/{https:cinehdplus.camseriesstorytt0105946anddosearchandsubactionsearch => https:cinehdplus.gratisseriesstory3137anddosearchandsubactionsearch} (76%) rename src/source/__fixtures__/CineHDPlus/{https:cinehdplus.camseriesstorytt2085059anddosearchandsubactionsearch => https:cinehdplus.gratisseriesstory42009anddosearchandsubactionsearch} (76%) diff --git a/src/source/CineHDPlus.test.ts b/src/source/CineHDPlus.test.ts index 9838f54..0079b9f 100644 --- a/src/source/CineHDPlus.test.ts +++ b/src/source/CineHDPlus.test.ts @@ -1,5 +1,5 @@ import { createTestContext } from '../test'; -import { FetcherMock, ImdbId } from '../utils'; +import { FetcherMock, TmdbId } from '../utils'; import { CineHDPlus } from './CineHDPlus'; const ctx = createTestContext({ es: 'on', mx: 'on' }); @@ -12,25 +12,25 @@ describe('CineHDPlus', () => { }); test('handles non-existent series gracefully', async () => { - const streams = await source.handle(ctx, 'series', new ImdbId('tt12345678', 1, 1)); + const streams = await source.handle(ctx, 'series', new TmdbId(12345678, 1, 1)); expect(streams).toHaveLength(0); }); test('handle imdb black mirror s2e3 (mx)', async () => { - const streams = await source.handle(ctx, 'series', new ImdbId('tt2085059', 2, 3)); + const streams = await source.handle(ctx, 'series', new TmdbId(42009, 2, 3)); expect(streams).toMatchSnapshot(); }); test('handle imdb babylon 5 s2e3 (es)', async () => { - const streams = await source.handle(ctx, 'series', new ImdbId('tt0105946', 2, 3)); + const streams = await source.handle(ctx, 'series', new TmdbId(3137, 2, 3)); expect(streams).toMatchSnapshot(); }); test('does not return mx results for es and vice-versa', async () => { - const streamsEs = await source.handle({ ...ctx, ...{ config: { es: 'on' } } }, 'series', new ImdbId('tt2085059', 2, 3)); + const streamsEs = await source.handle({ ...ctx, ...{ config: { es: 'on' } } }, 'series', new TmdbId(42009, 2, 3)); expect(streamsEs).toHaveLength(0); - const streamsMx = await source.handle({ ...ctx, ...{ config: { mx: 'on' } } }, 'series', new ImdbId('tt0105946', 2, 3)); + const streamsMx = await source.handle({ ...ctx, ...{ config: { mx: 'on' } } }, 'series', new TmdbId(3137, 2, 3)); expect(streamsMx).toHaveLength(0); }); }); diff --git a/src/source/CineHDPlus.ts b/src/source/CineHDPlus.ts index 56e64d4..ee7914b 100644 --- a/src/source/CineHDPlus.ts +++ b/src/source/CineHDPlus.ts @@ -1,7 +1,7 @@ import * as cheerio from 'cheerio'; import { ContentType } from 'stremio-addon-sdk'; import { Context, CountryCode } from '../types'; -import { Fetcher, getImdbId, Id, ImdbId } from '../utils'; +import { Fetcher, getTmdbId, Id, TmdbId } from '../utils'; import { Source, SourceResult } from './Source'; export class CineHDPlus extends Source { @@ -13,7 +13,7 @@ export class CineHDPlus extends Source { public readonly countryCodes: CountryCode[] = [CountryCode.es, CountryCode.mx]; - public readonly baseUrl = 'https://cinehdplus.cam'; + public readonly baseUrl = 'https://cinehdplus.gratis'; private readonly fetcher: Fetcher; @@ -24,9 +24,9 @@ export class CineHDPlus extends Source { } public async handleInternal(ctx: Context, _type: string, id: Id): Promise { - const imdbId = await getImdbId(ctx, this.fetcher, id); + const tmdbId = await getTmdbId(ctx, this.fetcher, id); - const seriesPageUrl = await this.fetchSeriesPageUrl(ctx, imdbId); + const seriesPageUrl = await this.fetchSeriesPageUrl(ctx, tmdbId); if (!seriesPageUrl) { return []; } @@ -37,10 +37,10 @@ export class CineHDPlus extends Source { const countryCodes = [($('.details__langs').html() as string).includes('Latino') ? CountryCode.mx : CountryCode.es]; - const title = `${($('meta[property="og:title"]').attr('content') as string).trim()} ${imdbId.season}x${imdbId.episode}`; + const title = `${($('meta[property="og:title"]').attr('content') as string).trim()} ${tmdbId.season}x${tmdbId.episode}`; return Promise.all( - $(`[data-num="${imdbId.season}x${imdbId.episode}"]`) + $(`[data-num="${tmdbId.season}x${tmdbId.episode}"]`) .siblings('.mirrors') .children('[data-link]') .map((_i, el) => new URL(($(el).attr('data-link') as string).replace(/^(https:)?\/\//, 'https://'))) @@ -50,8 +50,8 @@ export class CineHDPlus extends Source { ); }; - private fetchSeriesPageUrl = async (ctx: Context, imdbId: ImdbId): Promise => { - const html = await this.fetcher.text(ctx, new URL(`/series/?story=${imdbId.id}&do=search&subaction=search`, this.baseUrl)); + private fetchSeriesPageUrl = async (ctx: Context, tmdbId: TmdbId): Promise => { + const html = await this.fetcher.text(ctx, new URL(`/series/?story=${tmdbId.id}&do=search&subaction=search`, this.baseUrl)); const $ = cheerio.load(html); diff --git a/src/source/__fixtures__/CineHDPlus/https:cinehdplus.campeliculas19678-babylon-5-ver-online-hd.html b/src/source/__fixtures__/CineHDPlus/https:cinehdplus.gratispeliculas19678-babylon-5-ver-online-hd.html similarity index 96% rename from src/source/__fixtures__/CineHDPlus/https:cinehdplus.campeliculas19678-babylon-5-ver-online-hd.html rename to src/source/__fixtures__/CineHDPlus/https:cinehdplus.gratispeliculas19678-babylon-5-ver-online-hd.html index c0d23cc..f048be6 100644 --- a/src/source/__fixtures__/CineHDPlus/https:cinehdplus.campeliculas19678-babylon-5-ver-online-hd.html +++ b/src/source/__fixtures__/CineHDPlus/https:cinehdplus.gratispeliculas19678-babylon-5-ver-online-hd.html @@ -10,8 +10,8 @@ - - + + @@ -25,15 +25,16 @@ - - - - + + + + + - - + + @@ -99,7 +100,7 @@
@@ -116,26 +117,26 @@
- 50%
-
+ 100%
+
+
  • 100
  • +
  • 1
  • +
  • 2
  • +
  • 3
  • +
  • 4
  • +
  • 5
  • +
  • 6
  • +
  • 7
  • +
  • 8
  • +
  • 9
  • +
  • 10
  • +
    -
    (1 votos totales, promedio: 5 de 10)
    +
    (1 votos totales, promedio: 10 de 10)
    @@ -152,9 +153,9 @@

    Era de la humanidad, diez años después de la guerra entre la tierra y los minbari. El proyecto Babylon era un sueño al que se le había dado forma. su objetivo: evitar otra guerra creando un lugar donde humanos y alienígenas pudieran solucionar sus diferencias pacíficamente. Es un punto de encuentro, un hogar lejos de casa para diplomáticos, estafadores, empresarios y vagabundos: humanos y alienígenas envueltos en dos millones y medio de toneladas de metal, solos en la oscuridad. Puede ser un lugar peligroso, pero es nuestra última esperanza de paz. Esta es la historia de la última de las estaciones Babylon. El año es 2258. El nombre del lugar es Babylon 5.

    @@ -1262,13 +1263,13 @@ - - - + + - +
    - - +
    @@ -1831,7 +1832,7 @@
    -
    + @@ -1861,13 +1862,13 @@
    - - - - - - - - - + + + + + + +
    - + - +
    - - + diff --git a/src/source/__fixtures__/CineHDPlus/https:cinehdplus.campeliculas9582-black-mirror-ver-online-hd.html b/src/source/__fixtures__/CineHDPlus/https:cinehdplus.gratispeliculas9582-black-mirror-ver-online-hd.html similarity index 93% rename from src/source/__fixtures__/CineHDPlus/https:cinehdplus.campeliculas9582-black-mirror-ver-online-hd.html rename to src/source/__fixtures__/CineHDPlus/https:cinehdplus.gratispeliculas9582-black-mirror-ver-online-hd.html index 559081c..6f27e8f 100644 --- a/src/source/__fixtures__/CineHDPlus/https:cinehdplus.campeliculas9582-black-mirror-ver-online-hd.html +++ b/src/source/__fixtures__/CineHDPlus/https:cinehdplus.gratispeliculas9582-black-mirror-ver-online-hd.html @@ -10,8 +10,8 @@ - - + + @@ -25,15 +25,16 @@ - - - - + + + + + - - + + @@ -99,7 +100,7 @@
    @@ -122,16 +123,16 @@
    @@ -152,9 +153,9 @@

    Black Mirror es una serie de televisión británica creada por Charlie Brooker que muestra el lado oscuro de la vida y la tecnología. La serie es producida por Zeppotron para Endemol. En cuanto al contenido del programa y la estructura, Brooker ha señalado que "cada episodio tiene un tono diferente, un entorno diferente, incluso una realidad diferente, pero todos son acerca de la forma en que vivimos ahora - y la forma en que podríamos estar viviendo en 10 minutos si somos torpes".

    @@ -571,13 +572,13 @@ - - - + + - +
    - - +
    @@ -840,7 +841,7 @@
    -
    + @@ -870,13 +871,13 @@
    - - - - - - - - - + + + + + + +
    - + - +
    - - + diff --git a/src/source/__fixtures__/CineHDPlus/https:cinehdplus.camseriesstorytt12345678anddosearchandsubactionsearch b/src/source/__fixtures__/CineHDPlus/https:cinehdplus.gratisseriesstory12345678anddosearchandsubactionsearch similarity index 76% rename from src/source/__fixtures__/CineHDPlus/https:cinehdplus.camseriesstorytt12345678anddosearchandsubactionsearch rename to src/source/__fixtures__/CineHDPlus/https:cinehdplus.gratisseriesstory12345678anddosearchandsubactionsearch index 51e73c5..a4551fe 100644 --- a/src/source/__fixtures__/CineHDPlus/https:cinehdplus.camseriesstorytt12345678anddosearchandsubactionsearch +++ b/src/source/__fixtures__/CineHDPlus/https:cinehdplus.gratisseriesstory12345678anddosearchandsubactionsearch @@ -6,7 +6,7 @@ - + @@ -21,14 +21,15 @@ - - - + + + + - - + + @@ -100,7 +101,7 @@
    -
    + @@ -108,14 +109,14 @@ - - - - - - - - - + + + + + + +
    - +
    - - + diff --git a/src/source/__fixtures__/CineHDPlus/https:cinehdplus.camseriesstorytt0105946anddosearchandsubactionsearch b/src/source/__fixtures__/CineHDPlus/https:cinehdplus.gratisseriesstory3137anddosearchandsubactionsearch similarity index 76% rename from src/source/__fixtures__/CineHDPlus/https:cinehdplus.camseriesstorytt0105946anddosearchandsubactionsearch rename to src/source/__fixtures__/CineHDPlus/https:cinehdplus.gratisseriesstory3137anddosearchandsubactionsearch index f2341b4..01d821a 100644 --- a/src/source/__fixtures__/CineHDPlus/https:cinehdplus.camseriesstorytt0105946anddosearchandsubactionsearch +++ b/src/source/__fixtures__/CineHDPlus/https:cinehdplus.gratisseriesstory3137anddosearchandsubactionsearch @@ -6,7 +6,7 @@ - + @@ -21,14 +21,15 @@ - - - + + + + - - + + @@ -98,7 +99,7 @@
    - + @@ -106,14 +107,14 @@

    Found 1 responses (Query results 1 - 1) :

    - - - - - - - - - + + + + + + +
    - +
    - - + diff --git a/src/source/__fixtures__/CineHDPlus/https:cinehdplus.camseriesstorytt2085059anddosearchandsubactionsearch b/src/source/__fixtures__/CineHDPlus/https:cinehdplus.gratisseriesstory42009anddosearchandsubactionsearch similarity index 76% rename from src/source/__fixtures__/CineHDPlus/https:cinehdplus.camseriesstorytt2085059anddosearchandsubactionsearch rename to src/source/__fixtures__/CineHDPlus/https:cinehdplus.gratisseriesstory42009anddosearchandsubactionsearch index 5db89ed..ca93b17 100644 --- a/src/source/__fixtures__/CineHDPlus/https:cinehdplus.camseriesstorytt2085059anddosearchandsubactionsearch +++ b/src/source/__fixtures__/CineHDPlus/https:cinehdplus.gratisseriesstory42009anddosearchandsubactionsearch @@ -6,7 +6,7 @@ - + @@ -21,14 +21,15 @@ - - - + + + + - - + + @@ -98,7 +99,7 @@
    - + @@ -106,14 +107,14 @@

    Found 1 responses (Query results 1 - 1) :

    - - - - - - - - - + + + + + + +
    - +
    - - + diff --git a/src/source/__snapshots__/CineHDPlus.test.ts.snap b/src/source/__snapshots__/CineHDPlus.test.ts.snap index 3599a98..95383a1 100644 --- a/src/source/__snapshots__/CineHDPlus.test.ts.snap +++ b/src/source/__snapshots__/CineHDPlus.test.ts.snap @@ -7,7 +7,7 @@ exports[`CineHDPlus handle imdb babylon 5 s2e3 (es) 1`] = ` "countryCodes": [ "es", ], - "referer": "https://cinehdplus.cam/peliculas/19678-babylon-5-ver-online-hd.html", + "referer": "https://cinehdplus.gratis/peliculas/19678-babylon-5-ver-online-hd.html", "title": "Babylon 5 2x3", }, "url": "https://supervideo.tv/embed-1p0m1fi9mok8.html", @@ -17,7 +17,7 @@ exports[`CineHDPlus handle imdb babylon 5 s2e3 (es) 1`] = ` "countryCodes": [ "es", ], - "referer": "https://cinehdplus.cam/peliculas/19678-babylon-5-ver-online-hd.html", + "referer": "https://cinehdplus.gratis/peliculas/19678-babylon-5-ver-online-hd.html", "title": "Babylon 5 2x3", }, "url": "https://dropload.io/embed-957hny8mzrvh.html", @@ -32,7 +32,7 @@ exports[`CineHDPlus handle imdb black mirror s2e3 (mx) 1`] = ` "countryCodes": [ "mx", ], - "referer": "https://cinehdplus.cam/peliculas/9582-black-mirror-ver-online-hd.html", + "referer": "https://cinehdplus.gratis/peliculas/9582-black-mirror-ver-online-hd.html", "title": "Black Mirror 2x3", }, "url": "https://supervideo.tv/embed-avmgppo37sx1.html", @@ -42,7 +42,7 @@ exports[`CineHDPlus handle imdb black mirror s2e3 (mx) 1`] = ` "countryCodes": [ "mx", ], - "referer": "https://cinehdplus.cam/peliculas/9582-black-mirror-ver-online-hd.html", + "referer": "https://cinehdplus.gratis/peliculas/9582-black-mirror-ver-online-hd.html", "title": "Black Mirror 2x3", }, "url": "https://dropload.io/embed-t058ulwwkwn6.html",