fix(source): adapt and enable Eurostreaming (IT) again
This commit is contained in:
parent
5f34be12a9
commit
6a773f7740
15 changed files with 4844 additions and 660 deletions
|
|
@ -1,7 +1,7 @@
|
|||
import express, { NextFunction, Request, Response } from 'express';
|
||||
import { v4 as uuidv4 } from 'uuid';
|
||||
import winston from 'winston';
|
||||
import { CineHDPlus, Frembed, FrenchCloud, Source, KinoGer, MeineCloud, MostraGuarda, Soaper, StreamKiste, VerHdLink, VidSrc } from './source';
|
||||
import { CineHDPlus, Eurostreaming, Frembed, FrenchCloud, Source, KinoGer, MeineCloud, MostraGuarda, Soaper, StreamKiste, VerHdLink, VidSrc } from './source';
|
||||
import { createExtractors, ExtractorRegistry } from './extractor';
|
||||
import { ConfigureController, ManifestController, StreamController } from './controller';
|
||||
import { envGet, envIsProd, Fetcher, StreamResolver, tmdbFetch, TmdbId } from './utils';
|
||||
|
|
@ -34,7 +34,7 @@ const sources: Source[] = [
|
|||
new Frembed(fetcher),
|
||||
new FrenchCloud(fetcher),
|
||||
// IT
|
||||
// new Eurostreaming(fetcher), // https://github.com/webstreamr/webstreamr/issues/83
|
||||
new Eurostreaming(fetcher),
|
||||
new MostraGuarda(fetcher),
|
||||
];
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
import { Eurostreaming } from './Eurostreaming';
|
||||
import { FetcherMock, ImdbId } from '../utils';
|
||||
import { FetcherMock, TmdbId } from '../utils';
|
||||
import { Context } from '../types';
|
||||
|
||||
const ctx: Context = { id: 'id', ip: '127.0.0.1', config: { it: 'on' } };
|
||||
|
|
@ -12,12 +12,22 @@ describe('Eurostreaming', () => {
|
|||
});
|
||||
|
||||
test('handles non-existent series gracefully', async () => {
|
||||
const streams = await handler.handle(ctx, 'series', new ImdbId('tt12345678', 1, 1));
|
||||
const streams = await handler.handle(ctx, 'series', new TmdbId(61945, 1, 1));
|
||||
expect(streams).toHaveLength(0);
|
||||
});
|
||||
|
||||
test('handle imdb black mirror s2e4', async () => {
|
||||
const streams = await handler.handle(ctx, 'series', new ImdbId('tt2085059', 2, 4));
|
||||
const streams = await handler.handle(ctx, 'series', new TmdbId(42009, 2, 4));
|
||||
expect(streams).toMatchSnapshot();
|
||||
});
|
||||
|
||||
test('handle lost s1e1', async () => {
|
||||
const streams = await handler.handle(ctx, 'series', new TmdbId(4607, 1, 1));
|
||||
expect(streams).toMatchSnapshot();
|
||||
});
|
||||
|
||||
test('last of us s1e1', async () => {
|
||||
const streams = await handler.handle(ctx, 'series', new TmdbId(100088, 1, 1));
|
||||
expect(streams).toMatchSnapshot();
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
import { ContentType } from 'stremio-addon-sdk';
|
||||
import * as cheerio from 'cheerio';
|
||||
import { Source, SourceResult } from './types';
|
||||
import { Fetcher, getImdbId, Id, ImdbId } from '../utils';
|
||||
import { Fetcher, getTmdbId, getTmdbTvDetails, Id } from '../utils';
|
||||
import { Context, CountryCode } from '../types';
|
||||
|
||||
export class Eurostreaming implements Source {
|
||||
|
|
@ -20,9 +20,10 @@ export class Eurostreaming implements Source {
|
|||
}
|
||||
|
||||
public async handle(ctx: Context, _type: string, id: Id): Promise<SourceResult[]> {
|
||||
const imdbId = await getImdbId(ctx, this.fetcher, id);
|
||||
const tmdbId = await getTmdbId(ctx, this.fetcher, id);
|
||||
const tmdbTvDetails = await getTmdbTvDetails(ctx, this.fetcher, tmdbId, 'it');
|
||||
|
||||
const seriesPageUrl = await this.fetchSeriesPageUrl(ctx, imdbId);
|
||||
const seriesPageUrl = await this.fetchSeriesPageUrl(ctx, tmdbTvDetails.name);
|
||||
if (!seriesPageUrl) {
|
||||
return [];
|
||||
}
|
||||
|
|
@ -31,44 +32,42 @@ export class Eurostreaming implements Source {
|
|||
|
||||
const $ = cheerio.load(html);
|
||||
|
||||
const mainDataLinkElements = $(`[data-num="${imdbId.season}x${imdbId.episode}"][data-link!="#"]`);
|
||||
const mirrorDataLinkElements = $(`[data-num="${imdbId.season}x${imdbId.episode}"]`)
|
||||
.siblings('.mirrors')
|
||||
.children('[data-link!="#"]');
|
||||
const title = `${tmdbTvDetails.name} ${tmdbId.season}x${tmdbId.episode}`;
|
||||
|
||||
const title = $('meta[property="og:title"]').attr('content') as string;
|
||||
|
||||
return Promise.all(mainDataLinkElements
|
||||
.add(mirrorDataLinkElements)
|
||||
.map((_i, el) => new URL(($(el).attr('data-link') as string).replace(/^(https:)?\/\//, 'https://')))
|
||||
.toArray()
|
||||
.filter(url => !url.host.match(/eurostreaming/))
|
||||
.map(url => ({ countryCode: CountryCode.it, referer: seriesPageUrl, title: `${title.trim()} ${imdbId.season}x${imdbId.episode}`, url })),
|
||||
return Promise.all(
|
||||
$(`[data-num="${tmdbId.season}x${tmdbId.episode}"]`)
|
||||
.siblings('.mirrors')
|
||||
.children('[data-link!="#"]')
|
||||
.map((_i, el) => new URL($(el).attr('data-link') as string))
|
||||
.toArray()
|
||||
.filter(url => !url.host.match(/eurostreaming/))
|
||||
.map(url => ({ countryCode: CountryCode.it, title, url })),
|
||||
);
|
||||
};
|
||||
|
||||
private fetchSeriesPageUrl = async (ctx: Context, imdbId: ImdbId): Promise<URL | undefined> => {
|
||||
private fetchSeriesPageUrl = async (ctx: Context, keyword: string): Promise<URL | undefined> => {
|
||||
const postUrl = new URL('https://eurostreaming.my/');
|
||||
|
||||
const form = new URLSearchParams();
|
||||
form.append('do', 'search');
|
||||
form.append('subaction', 'search');
|
||||
form.append('story', keyword);
|
||||
|
||||
const html = await this.fetcher.textPost(
|
||||
ctx,
|
||||
new URL('https://eurostreaming.my/index.php'),
|
||||
JSON.stringify({
|
||||
do: 'search',
|
||||
subaction: 'search',
|
||||
search_start: 0,
|
||||
full_search: 0,
|
||||
result_from: 1,
|
||||
story: imdbId.id,
|
||||
}),
|
||||
postUrl,
|
||||
form.toString(),
|
||||
{
|
||||
headers: {
|
||||
'Content-Type': 'application/x-www-form-urlencoded',
|
||||
'Referer': postUrl.origin,
|
||||
},
|
||||
},
|
||||
);
|
||||
|
||||
const $ = cheerio.load(html);
|
||||
|
||||
const url = $('.post-content a[href]:first')
|
||||
const url = $(`.post-thumb a[href][title="${keyword}"]:first`)
|
||||
.map((_i, el) => $(el).attr('href'))
|
||||
.get(0);
|
||||
|
||||
|
|
|
|||
1
src/source/__fixtures__/Eurostreaming/https:api.themoviedb.org3tv100088languageit
generated
Normal file
1
src/source/__fixtures__/Eurostreaming/https:api.themoviedb.org3tv100088languageit
generated
Normal file
|
|
@ -0,0 +1 @@
|
|||
{"adult":false,"backdrop_path":"/uQ4lG7E7mlyKsGvbASftQ6Hu2IX.jpg","created_by":[{"id":1295692,"credit_id":"5e84f03598f1f10016a985c0","name":"Neil Druckmann","original_name":"Neil Druckmann","gender":2,"profile_path":"/bVUsM4aYiHbeSYE1xAw2H5Z1ANU.jpg"},{"id":35796,"credit_id":"5e84f06a3344c600153f6a57","name":"Craig Mazin","original_name":"Craig Mazin","gender":2,"profile_path":"/uEhna6qcMuyU5TP7irpTUZ2ZsZc.jpg"}],"episode_run_time":[],"first_air_date":"2023-01-15","genres":[{"id":18,"name":"Dramma"}],"homepage":"https://www.hbo.com/the-last-of-us","id":100088,"in_production":true,"languages":["en"],"last_air_date":"2025-05-25","last_episode_to_air":{"id":5994273,"name":"Convergenza","overview":"Nel mezzo della battaglia tra le fazioni in guerra di Seattle, la ricerca di Ellie la porta verso uno scontro devastante.","vote_average":6.111,"vote_count":45,"air_date":"2025-05-25","episode_number":7,"episode_type":"finale","production_code":"","runtime":50,"season_number":2,"show_id":100088,"still_path":"/4IZqCZRmBq9LifHFQkYA1QqqE0x.jpg"},"name":"The Last of Us","next_episode_to_air":null,"networks":[{"id":49,"logo_path":"/tuomPhY2UtuPTqqFnKMVHvSb724.png","name":"HBO","origin_country":"US"}],"number_of_episodes":16,"number_of_seasons":2,"origin_country":["US"],"original_language":"en","original_name":"The Last of Us","overview":"Vent’anni dopo la distruzione della civiltà moderna Joel, uno scaltro sopravvissuto, viene incaricato di far uscire Ellie, una ragazza di 14 anni, da una zona di quarantena sotto stretta sorveglianza. Un compito all’apparenza facile che si trasforma presto in un viaggio brutale e straziante, in cui i due si troveranno a dover attraversare gli Stati Uniti insieme e a dipendere l’uno dall’altra per sopravvivere.","popularity":156.0795,"poster_path":"/6WlffOd3bszyndGgsKGcUL6k28n.jpg","production_companies":[{"id":125281,"logo_path":"/3hV8pyxzAJgEjiSYVv1WZ0ZYayp.png","name":"PlayStation Productions","origin_country":"US"},{"id":11073,"logo_path":"/aCbASRcI1MI7DXjPbSW9Fcv9uGR.png","name":"Sony Pictures Television","origin_country":"US"},{"id":23217,"logo_path":"/kXBZdQigEf6QiTLzo6TFLAa7jKD.png","name":"Naughty Dog","origin_country":"US"},{"id":119645,"logo_path":null,"name":"Word Games","origin_country":"US"},{"id":115241,"logo_path":null,"name":"The Mighty Mint","origin_country":"US"},{"id":3268,"logo_path":"/tuomPhY2UtuPTqqFnKMVHvSb724.png","name":"HBO","origin_country":"US"}],"production_countries":[{"iso_3166_1":"US","name":"United States of America"}],"seasons":[{"air_date":"2023-01-14","episode_count":9,"id":144593,"name":"Stagione 1","overview":"Da Boston a Salt Lake City, attraverso un mondo devastato da una piaga apocalittica: un uomo e una ragazza viaggiano per tentare di salvare l'umanità.","poster_path":"/bSWFzaboUFxfxBE1pIWlRsp5TvE.jpg","season_number":1,"vote_average":7.7},{"air_date":"2025-04-13","episode_count":7,"id":405376,"name":"Stagione 2","overview":"Cinque anni dopo gli eventi della prima stagione, Joel ed Ellie saranno trascinati in un conflitto fra di loro e contro un mondo persino più pericoloso e imprevedibile di quello che si erano lasciati alle spalle.","poster_path":"/2IXXPbfqGX6HUHD6HX2z56g2ra.jpg","season_number":2,"vote_average":6.4}],"spoken_languages":[{"english_name":"English","iso_639_1":"en","name":"English"}],"status":"Returning Series","tagline":"Quando ti perdi nell'oscurità, cerca la luce","type":"Scripted","vote_average":8.52,"vote_count":6194}
|
||||
1
src/source/__fixtures__/Eurostreaming/https:api.themoviedb.org3tv42009languageit
generated
Normal file
1
src/source/__fixtures__/Eurostreaming/https:api.themoviedb.org3tv42009languageit
generated
Normal file
|
|
@ -0,0 +1 @@
|
|||
{"adult":false,"backdrop_path":"/dg3OindVAGZBjlT3xYKqIAdukPL.jpg","created_by":[{"id":211845,"credit_id":"52595fb5760ee346619587b5","name":"Charlie Brooker","original_name":"Charlie Brooker","gender":2,"profile_path":"/dmdLd5I4cnpCZzoITm26NOwu6Rn.jpg"}],"episode_run_time":[],"first_air_date":"2011-12-04","genres":[{"id":10765,"name":"Sci-Fi & Fantasy"},{"id":18,"name":"Dramma"},{"id":9648,"name":"Mistero"}],"homepage":"https://www.netflix.com/title/70264888","id":42009,"in_production":true,"languages":["en"],"last_air_date":"2025-04-10","last_episode_to_air":{"id":6085099,"name":"USS Callister: Infinity","overview":"Nanette Cole e l'equipaggio della USS Callister sono bloccati in un vasto universo virtuale dove lottano per la sopravvivenza contro trenta milioni di giocatori.","vote_average":7.436,"vote_count":39,"air_date":"2025-04-10","episode_number":6,"episode_type":"finale","production_code":"","runtime":91,"season_number":7,"show_id":42009,"still_path":"/6JxoU4B1VMYf2tt8VPpNl8juKwm.jpg"},"name":"Black Mirror","next_episode_to_air":null,"networks":[{"id":26,"logo_path":"/hbifXPpM55B1fL5wPo7t72vzN78.png","name":"Channel 4","origin_country":"GB"},{"id":213,"logo_path":"/wwemzKWzjKYJFfCeiB57q3r4Bcm.png","name":"Netflix","origin_country":""}],"number_of_episodes":32,"number_of_seasons":7,"origin_country":["GB"],"original_language":"en","original_name":"Black Mirror","overview":"Una serie antologica di racconti angosciosi e spiazzanti che rivelano i tratti umani più oscuri, le innovazioni più sensazionali e tanto altro ancora.","popularity":75.9346,"poster_path":"/seN6rRfN0I6n8iDXjlSMk1QjNcq.jpg","production_companies":[{"id":76757,"logo_path":null,"name":"House of Tomorrow","origin_country":"GB"},{"id":18663,"logo_path":"/khiCshsZBdtUUYOr4VLoCtuqCEq.png","name":"Zeppotron","origin_country":"GB"},{"id":133905,"logo_path":"/tEEIQIYHQgPyOBgvoAlqPXfpEPX.png","name":"Broke and Bones","origin_country":"GB"}],"production_countries":[{"iso_3166_1":"GB","name":"United Kingdom"}],"seasons":[{"air_date":"2014-12-16","episode_count":1,"id":76596,"name":"Speciali","overview":"","poster_path":"/zvfw0f35QmfHCPq5qvdHquFjrQC.jpg","season_number":0,"vote_average":0.0},{"air_date":"2011-12-04","episode_count":3,"id":51964,"name":"Stagione 1","overview":"Questa miniserie antologica immagina un futuro fantascientifico dove le persone pedalano per guadagnare \"meriti\" e vengono dotate di un impianto di memoria.","poster_path":"/ztdy1f1cAjwsO0GpVKzNuqZ0PMv.jpg","season_number":1,"vote_average":7.7},{"air_date":"2013-02-11","episode_count":3,"id":51965,"name":"Stagione 2","overview":"Tra i temi della seconda stagione di questa serie antologica spiccano la dipendenza dai social media e le implicazioni dei reality dal vivo.","poster_path":"/y71DeJiAv0dV8H8hiFnuIuyc0Gx.jpg","season_number":2,"vote_average":7.1},{"air_date":"2016-10-21","episode_count":6,"id":63871,"name":"Stagione 3","overview":"Nella terza stagione, un paradiso surreale per gli innamorati, un giovane tormentato da strani messaggi e un'app che esercita un potere inquietante.","poster_path":"/3mKYrlZpFbpFu7CaVxoleO68MFG.jpg","season_number":3,"vote_average":7.7},{"air_date":"2017-12-29","episode_count":6,"id":96276,"name":"Stagione 4","overview":"Una fantasia fuori controllo, oggetti che svelano oscuri segreti e una donna inseguita da un implacabile cacciatore. Tutto questo in nuove storie di tecnologia impazzita.","poster_path":"/rQqrNbXeFsSdL3CF2zBVqymnsHL.jpg","season_number":4,"vote_average":7.3},{"air_date":"2019-06-05","episode_count":3,"id":124320,"name":"Stagione 5","overview":"Un videogioco trasforma una lunga amicizia, una società di social media subisce un sequestro e una ragazza crea un legame con la versione robot del suo idolo pop.","poster_path":"/5xjf5aLeooPYWqH66vB80jMJT9u.jpg","season_number":5,"vote_average":6.5},{"air_date":"2023-06-15","episode_count":5,"id":331809,"name":"Stagione 6","overview":"Cinque nuovi episodi tra antichi misteri, paure del futuro, tecnologia nemica e un'inquietante rappresentazione del mondo.","poster_path":"/kwATNh8JC1IJclnVwk8x7wZb2b4.jpg","season_number":6,"vote_average":6.4},{"air_date":"2025-04-09","episode_count":6,"id":383778,"name":"Stagione 7","overview":"","poster_path":"/aRN9LmPQHe8c1B2eR7MB3tiWFWk.jpg","season_number":7,"vote_average":7.1}],"spoken_languages":[{"english_name":"English","iso_639_1":"en","name":"English"}],"status":"Returning Series","tagline":"","type":"Scripted","vote_average":8.284,"vote_count":5532}
|
||||
1
src/source/__fixtures__/Eurostreaming/https:api.themoviedb.org3tv4607languageit
generated
Normal file
1
src/source/__fixtures__/Eurostreaming/https:api.themoviedb.org3tv4607languageit
generated
Normal file
|
|
@ -0,0 +1 @@
|
|||
{"adult":false,"backdrop_path":"/yUOFocKDW7MCC5isx4FK8A68QFp.jpg","created_by":[{"id":15344,"credit_id":"525775af760ee36aaa51895a","name":"J.J. Abrams","original_name":"J.J. Abrams","gender":2,"profile_path":"/uiEVOx3QclxnN76t8PU6v5IcUUP.jpg"},{"id":28974,"credit_id":"525775af760ee36aaa518960","name":"Damon Lindelof","original_name":"Damon Lindelof","gender":2,"profile_path":"/9V75oRAKiI0chdg1wGh1wPqaXsG.jpg"},{"id":1237491,"credit_id":"525775af760ee36aaa518954","name":"Jeffrey Lieber","original_name":"Jeffrey Lieber","gender":2,"profile_path":null}],"episode_run_time":[],"first_air_date":"2004-09-22","genres":[{"id":9648,"name":"Mistero"},{"id":10759,"name":"Action & Adventure"},{"id":18,"name":"Dramma"}],"homepage":"http://abc.go.com/shows/lost","id":4607,"in_production":false,"languages":["en"],"last_air_date":"2010-05-23","last_episode_to_air":{"id":334042,"name":"La fine","overview":"La serie è giunta alla fine. I fronti si dividono mentre Locke attiva il piano che potrebbe finalmente liberarlo dall'isola.","vote_average":8.1,"vote_count":45,"air_date":"2010-05-23","episode_number":17,"episode_type":"finale","production_code":"617","runtime":105,"season_number":6,"show_id":4607,"still_path":"/eNuO8GqCuRb0fAeQDAh2w5AaXTo.jpg"},"name":"Lost","next_episode_to_air":null,"networks":[{"id":2,"logo_path":"/2uy2ZWcplrSObIyt4x0Y9rkG6qO.png","name":"ABC","origin_country":"US"}],"number_of_episodes":118,"number_of_seasons":6,"origin_country":["US"],"original_language":"en","original_name":"Lost","overview":"48 persone sopravvivono ad un tremendo disastro aereo e si ritrovano dispersi su un'isola dell'Oceano Pacifico che sembra completamente disabitata. Ognuno di loro ha una sua storia, ognuno di loro nasconde dei segreti. Ma tutti quanti sono consapevoli che, se vogliono continuare a vivere, debbono collaborare, superare le avversità e le divisioni personali e sperare in un soccorso che potrebbe anche non arrivare mai. Il gruppo, mentre affronta l'inclemenza del tempo e l'ambiente ostile, scopre, con il passare del tempo, che anche l'isola nasconde dei segreti.","popularity":131.2215,"poster_path":"/og6S0aTZU6YUJAbqxeKjCa3kY1E.jpg","production_companies":[{"id":19366,"logo_path":"/vOH8dyQhLK01pg5fYkgiS31jlFm.png","name":"ABC Studios","origin_country":"US"},{"id":11461,"logo_path":"/p9FoEt5shEKRWRKVIlvFaEmRnun.png","name":"Bad Robot","origin_country":"US"},{"id":1558,"logo_path":"/wwaKUcOENHix2jxLfFBfNkCtOEQ.png","name":"Touchstone Television","origin_country":"US"}],"production_countries":[{"iso_3166_1":"US","name":"United States of America"}],"seasons":[{"air_date":"2005-04-27","episode_count":131,"id":14047,"name":"Speciali","overview":"","poster_path":"/w56HDJnHEG5McJ0IdxZ8hJDSUHa.jpg","season_number":0,"vote_average":0.0},{"air_date":"2004-09-22","episode_count":24,"id":14041,"name":"Stagione 1","overview":"","poster_path":"/fq45wLvW48jNN7Jfv3xnui2t3M9.jpg","season_number":1,"vote_average":8.0},{"air_date":"2005-09-21","episode_count":24,"id":14042,"name":"Stagione 2","overview":"","poster_path":"/rjiasmiRvZN4Sboo9HSiwZXVpGT.jpg","season_number":2,"vote_average":8.1},{"air_date":"2006-10-04","episode_count":23,"id":14043,"name":"Stagione 3","overview":"","poster_path":"/26IrbJQ9xGY4F9wgn9k7Z9hAHUU.jpg","season_number":3,"vote_average":8.1},{"air_date":"2008-01-31","episode_count":13,"id":14044,"name":"Stagione 4","overview":"","poster_path":"/9cTBaVJnbWLhry2Q5qz30vl525t.jpg","season_number":4,"vote_average":8.0},{"air_date":"2009-01-21","episode_count":17,"id":14045,"name":"Stagione 5","overview":"","poster_path":"/tOg1nxCSgmJLxBFU35Q7gD4sYLp.jpg","season_number":5,"vote_average":8.4},{"air_date":"2010-02-02","episode_count":17,"id":14046,"name":"Stagione 6","overview":"","poster_path":"/8wlrRJecPW4sMK37nR71zK4hhhP.jpg","season_number":6,"vote_average":8.3}],"spoken_languages":[{"english_name":"English","iso_639_1":"en","name":"English"}],"status":"Ended","tagline":"","type":"Scripted","vote_average":7.945,"vote_count":4560}
|
||||
1
src/source/__fixtures__/Eurostreaming/https:api.themoviedb.org3tv61945languageit
generated
Normal file
1
src/source/__fixtures__/Eurostreaming/https:api.themoviedb.org3tv61945languageit
generated
Normal file
|
|
@ -0,0 +1 @@
|
|||
{"adult":false,"backdrop_path":"/uYgcyrinlFfXTFkflzkOjAmtlpP.jpg","created_by":[{"id":49091,"credit_id":"54c38e099251416e6000effe","name":"Uli Brée","original_name":"Uli Brée","gender":2,"profile_path":"/8qHRQed5idzAlfrjc9j4FyNVttq.jpg"}],"episode_run_time":[45],"first_air_date":"2015-01-12","genres":[{"id":35,"name":"Commedia"},{"id":18,"name":"Dramma"}],"homepage":"https://www.daserste.de/unterhaltung/serie/vorstadtweiber/index.html","id":61945,"in_production":false,"languages":["de"],"last_air_date":"2022-03-14","last_episode_to_air":{"id":3596974,"name":"Episodio 11","overview":"","vote_average":0.0,"vote_count":0,"air_date":"2022-03-14","episode_number":11,"episode_type":"finale","production_code":"","runtime":45,"season_number":6,"show_id":61945,"still_path":"/zsumt4d4TfvFB4QuXu2rp7jsaGl.jpg"},"name":"Vorstadtweiber","next_episode_to_air":null,"networks":[{"id":189,"logo_path":"/k1poBlW9HGDnIyZU67BtH3BXQuz.png","name":"ORF 1","origin_country":"AT"},{"id":308,"logo_path":"/nGl2dDGonksWY4fTzPPdkK3oNyq.png","name":"Das Erste","origin_country":"DE"}],"number_of_episodes":61,"number_of_seasons":6,"origin_country":["AT"],"original_language":"de","original_name":"Vorstadtweiber","overview":"","popularity":18.3913,"poster_path":"/um3A1r8A5Cuco7ldJHKtMhU7zU9.jpg","production_companies":[{"id":2279,"logo_path":null,"name":"MR Filmproduktion","origin_country":"AT"},{"id":6856,"logo_path":null,"name":"MR FILM","origin_country":"AT"}],"production_countries":[{"iso_3166_1":"AT","name":"Austria"}],"seasons":[{"air_date":"2015-03-31","episode_count":4,"id":74332,"name":"Speciali","overview":"","poster_path":"/tFF69cFAsIvWMYFp9NbxvQJAORE.jpg","season_number":0,"vote_average":0.0},{"air_date":"2015-01-12","episode_count":10,"id":64717,"name":"Stagione 1","overview":"","poster_path":"/aswimgrUIaeHPH3B8lPH2YYUZxj.jpg","season_number":1,"vote_average":9.0},{"air_date":"2016-03-14","episode_count":10,"id":74313,"name":"Stagione 2","overview":"","poster_path":"/7fVAfhzCXitqVVvvfMDzoNZ9uY1.jpg","season_number":2,"vote_average":9.0},{"air_date":"2018-01-08","episode_count":10,"id":97704,"name":"Stagione 3","overview":"","poster_path":"/W6kdpyhpYK6bU77OD3k3YXPH4k.jpg","season_number":3,"vote_average":9.0},{"air_date":"2019-09-16","episode_count":10,"id":132439,"name":"Stagione 4","overview":"","poster_path":"/hhQeOEgvbzzOBCybHISHQAPAHk6.jpg","season_number":4,"vote_average":8.0},{"air_date":"2021-01-11","episode_count":10,"id":171866,"name":"Stagione 5","overview":"","poster_path":"/5n93sCEdcSMyXc3WEJjJvENdztY.jpg","season_number":5,"vote_average":0.0},{"air_date":"2022-01-10","episode_count":11,"id":236440,"name":"Stagione 6","overview":"","poster_path":"/9GomC3oI57Tf3Y70WRMrpCs1GPg.jpg","season_number":6,"vote_average":0.0}],"spoken_languages":[{"english_name":"German","iso_639_1":"de","name":"Deutsch"}],"status":"Ended","tagline":"","type":"Scripted","vote_average":8.1,"vote_count":13}
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
2510
src/source/__fixtures__/Eurostreaming/https:eurostreaming.mystream496-lost-streaming.html
generated
Normal file
2510
src/source/__fixtures__/Eurostreaming/https:eurostreaming.mystream496-lost-streaming.html
generated
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
357
src/source/__fixtures__/Eurostreaming/post-https:eurostreaming.my-dosearchandsubactionsearchandstoryLost
generated
Normal file
357
src/source/__fixtures__/Eurostreaming/post-https:eurostreaming.my-dosearchandsubactionsearchandstoryLost
generated
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -4,21 +4,43 @@ exports[`Eurostreaming handle imdb black mirror s2e4 1`] = `
|
|||
[
|
||||
{
|
||||
"countryCode": "it",
|
||||
"referer": "https://eurostreaming.my/stream/284-black-mirror-streaming-streaming.html",
|
||||
"title": "Black Mirror 2x4",
|
||||
"url": "https://supervideo.cc/embed-anf0clp2vb6y.html",
|
||||
"url": "https://supervideo.cc/e/anf0clp2vb6y",
|
||||
},
|
||||
{
|
||||
"countryCode": "it",
|
||||
"referer": "https://eurostreaming.my/stream/284-black-mirror-streaming-streaming.html",
|
||||
"title": "Black Mirror 2x4",
|
||||
"url": "https://supervideo.cc/embed-anf0clp2vb6y.html",
|
||||
},
|
||||
{
|
||||
"countryCode": "it",
|
||||
"referer": "https://eurostreaming.my/stream/284-black-mirror-streaming-streaming.html",
|
||||
"title": "Black Mirror 2x4",
|
||||
"url": "https://dropload.io/embed-978xyyxi3ldq.html",
|
||||
},
|
||||
]
|
||||
`;
|
||||
|
||||
exports[`Eurostreaming handle lost s1e1 1`] = `
|
||||
[
|
||||
{
|
||||
"countryCode": "it",
|
||||
"title": "Lost 1x1",
|
||||
"url": "https://supervideo.cc/e/lgslt2lst4jv",
|
||||
},
|
||||
{
|
||||
"countryCode": "it",
|
||||
"title": "Lost 1x1",
|
||||
"url": "https://dropload.io/embed-vabynwo8glxz.html",
|
||||
},
|
||||
]
|
||||
`;
|
||||
|
||||
exports[`Eurostreaming last of us s1e1 1`] = `
|
||||
[
|
||||
{
|
||||
"countryCode": "it",
|
||||
"title": "The Last of Us 1x1",
|
||||
"url": "https://supervideo.cc/e/ic1mmvrh5xv6",
|
||||
},
|
||||
{
|
||||
"countryCode": "it",
|
||||
"title": "The Last of Us 1x1",
|
||||
"url": "https://dropload.io/embed-uyzfrh62n31l.html",
|
||||
},
|
||||
]
|
||||
`;
|
||||
|
|
|
|||
Loading…
Reference in a new issue