12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- 'use strict';
- export default {getMedia};
- function getMedia(vlosScript: string, seasonTitle: string, seasonNumber: string): IEpisodePage
- {
- let vlosMedia: IVlosScript;
- function f(script: string) {
- /* We need to scope things */
- /* This is what will give us the medias */
- function VilosPlayer() {
- this.load = function(a: string, b: any, c: any)
- {
- vlosMedia = this.config.media;
- vlosMedia.series = this.config.analytics.media_reporting_parent;
- };
- this.config = {};
- this.config.player = {};
- this.config.player.pause_screen = {};
- this.config.language = '';
- }
- /* Let's stub what the script need */
- const window = {
- WM: {
- UserConsent: {
- getUserConsentAdvertisingState(): string { return ''; }
- }
- }
- };
- const document = {
- getElementsByClassName(a: any): any { return {length: 0}; },
- };
- const localStorage = {
- getItem(a: any): any { return null; },
- };
- const $ = {
- cookie(a: any) { /* nothing */ },
- };
- /*
- Evil ugly things. Need to run the script from a somewhat untrusted source.
- Need to find a better way of doing.
- */
- // tslint:disable-next-line:no-eval
- eval(script);
- }
- f(vlosScript);
- if (vlosMedia === undefined)
- {
- console.error('Error fetching vlos data - aborting - Please report the error if happen again.');
- process.exit(-1);
- }
- return {
- episode: vlosMedia.metadata.episode_number,
- id: vlosMedia.metadata.id,
- series: vlosMedia.series.title,
- season: seasonTitle,
- title: vlosMedia.metadata.title,
- swf: '',
- volume: seasonNumber,
- filename: '',
- media: vlosMedia,
- };
- }
|