chore(extractor): move Fetcher into parent, guess missing heights for SuperVideo
This commit is contained in:
parent
ada3ff1926
commit
cefc80fa55
23 changed files with 60 additions and 185 deletions
|
|
@ -2,7 +2,6 @@ import * as cheerio from 'cheerio';
|
|||
import randomstring from 'randomstring';
|
||||
import { NotFoundError } from '../error';
|
||||
import { Context, CountryCode, Format, UrlResult } from '../types';
|
||||
import { Fetcher } from '../utils';
|
||||
import { Extractor } from './Extractor';
|
||||
|
||||
export class DoodStream extends Extractor {
|
||||
|
|
@ -10,14 +9,6 @@ export class DoodStream extends Extractor {
|
|||
|
||||
public readonly label = 'DoodStream';
|
||||
|
||||
private readonly fetcher: Fetcher;
|
||||
|
||||
public constructor(fetcher: Fetcher) {
|
||||
super();
|
||||
|
||||
this.fetcher = fetcher;
|
||||
}
|
||||
|
||||
/** @see https://github.com/Gujal00/ResolveURL/blob/master/script.module.resolveurl/lib/resolveurl/plugins/doodstream.py */
|
||||
public supports(_ctx: Context, url: URL): boolean {
|
||||
return null !== url.host.match(/dood|do[0-9]go|doood|dooood|ds2play|ds2video|d0o0d|do0od|d0000d|d000d|vidply|all3do|doply|vide0|vvide0|d-s/);
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ import bytes from 'bytes';
|
|||
import * as cheerio from 'cheerio';
|
||||
import { NotFoundError } from '../error';
|
||||
import { Context, CountryCode, Format, UrlResult } from '../types';
|
||||
import { extractUrlFromPacked, Fetcher } from '../utils';
|
||||
import { extractUrlFromPacked } from '../utils';
|
||||
import { Extractor } from './Extractor';
|
||||
|
||||
export class Dropload extends Extractor {
|
||||
|
|
@ -10,14 +10,6 @@ export class Dropload extends Extractor {
|
|||
|
||||
public readonly label = 'Dropload';
|
||||
|
||||
private readonly fetcher: Fetcher;
|
||||
|
||||
public constructor(fetcher: Fetcher) {
|
||||
super();
|
||||
|
||||
this.fetcher = fetcher;
|
||||
}
|
||||
|
||||
public supports(_ctx: Context, url: URL): boolean {
|
||||
return null !== url.host.match(/dropload/);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
import { BlockedError } from '../error';
|
||||
import { Context, CountryCode, Format, UrlResult } from '../types';
|
||||
import { Fetcher, showExternalUrls } from '../utils';
|
||||
import { showExternalUrls } from '../utils';
|
||||
import { Extractor } from './Extractor';
|
||||
|
||||
export class ExternalUrl extends Extractor {
|
||||
|
|
@ -10,14 +10,6 @@ export class ExternalUrl extends Extractor {
|
|||
|
||||
public override readonly ttl = 3600000; // 1h
|
||||
|
||||
private readonly fetcher: Fetcher;
|
||||
|
||||
public constructor(fetcher: Fetcher) {
|
||||
super();
|
||||
|
||||
this.fetcher = fetcher;
|
||||
}
|
||||
|
||||
public supports(ctx: Context, url: URL): boolean {
|
||||
return showExternalUrls(ctx.config) && null !== url.host.match(/.*/);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
import { NotFoundError } from '../error';
|
||||
import { Context, CountryCode, Format, UrlResult } from '../types';
|
||||
import { Fetcher } from '../utils';
|
||||
|
||||
export abstract class Extractor {
|
||||
public abstract readonly id: string;
|
||||
|
|
@ -10,6 +11,12 @@ export abstract class Extractor {
|
|||
|
||||
public readonly viaMediaFlowProxy: boolean = false;
|
||||
|
||||
protected readonly fetcher: Fetcher;
|
||||
|
||||
public constructor(fetcher: Fetcher) {
|
||||
this.fetcher = fetcher;
|
||||
}
|
||||
|
||||
public abstract supports(ctx: Context, url: URL): boolean;
|
||||
|
||||
public normalize(url: URL): URL {
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
import bytes from 'bytes';
|
||||
import { Context, CountryCode, Format, UrlResult } from '../types';
|
||||
import { buildMediaFlowProxyExtractorStreamUrl, Fetcher, supportsMediaFlowProxy } from '../utils';
|
||||
import { buildMediaFlowProxyExtractorStreamUrl, supportsMediaFlowProxy } from '../utils';
|
||||
import { Extractor } from './Extractor';
|
||||
|
||||
export class Fastream extends Extractor {
|
||||
|
|
@ -12,14 +12,6 @@ export class Fastream extends Extractor {
|
|||
|
||||
public override viaMediaFlowProxy = true;
|
||||
|
||||
private readonly fetcher: Fetcher;
|
||||
|
||||
public constructor(fetcher: Fetcher) {
|
||||
super();
|
||||
|
||||
this.fetcher = fetcher;
|
||||
}
|
||||
|
||||
public supports(ctx: Context, url: URL): boolean {
|
||||
return null !== url.host.match(/fastream/) && supportsMediaFlowProxy(ctx);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
import * as cheerio from 'cheerio';
|
||||
import { Context, CountryCode, Format, UrlResult } from '../types';
|
||||
import { Fetcher } from '../utils';
|
||||
import { Extractor } from './Extractor';
|
||||
|
||||
export class Fsst extends Extractor {
|
||||
|
|
@ -10,14 +9,6 @@ export class Fsst extends Extractor {
|
|||
|
||||
public override readonly ttl = 0;
|
||||
|
||||
private readonly fetcher: Fetcher;
|
||||
|
||||
public constructor(fetcher: Fetcher) {
|
||||
super();
|
||||
|
||||
this.fetcher = fetcher;
|
||||
}
|
||||
|
||||
public supports(_ctx: Context, url: URL): boolean {
|
||||
return null !== url.host.match(/fsst/);
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
import crypto from 'crypto';
|
||||
import { Context, CountryCode, Format, UrlResult } from '../types';
|
||||
import { Fetcher, guessHeightFromPlaylist } from '../utils';
|
||||
import { guessHeightFromPlaylist } from '../utils';
|
||||
import { Extractor } from './Extractor';
|
||||
|
||||
/** @see https://github.com/Gujal00/ResolveURL/blob/master/script.module.resolveurl/lib/resolveurl/plugins/kinoger.py */
|
||||
|
|
@ -9,14 +9,6 @@ export class KinoGer extends Extractor {
|
|||
|
||||
public readonly label = 'KinoGer';
|
||||
|
||||
private readonly fetcher: Fetcher;
|
||||
|
||||
public constructor(fetcher: Fetcher) {
|
||||
super();
|
||||
|
||||
this.fetcher = fetcher;
|
||||
}
|
||||
|
||||
public supports(_ctx: Context, url: URL): boolean {
|
||||
return [
|
||||
'asianembed.cam',
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ import bytes from 'bytes';
|
|||
import * as cheerio from 'cheerio';
|
||||
import { NotFoundError } from '../error';
|
||||
import { Context, CountryCode, Format, UrlResult } from '../types';
|
||||
import { buildMediaFlowProxyExtractorRedirectUrl, Fetcher, supportsMediaFlowProxy } from '../utils';
|
||||
import { buildMediaFlowProxyExtractorRedirectUrl, supportsMediaFlowProxy } from '../utils';
|
||||
import { Extractor } from './Extractor';
|
||||
|
||||
export class Mixdrop extends Extractor {
|
||||
|
|
@ -14,14 +14,6 @@ export class Mixdrop extends Extractor {
|
|||
|
||||
public override viaMediaFlowProxy = true;
|
||||
|
||||
private readonly fetcher: Fetcher;
|
||||
|
||||
public constructor(fetcher: Fetcher) {
|
||||
super();
|
||||
|
||||
this.fetcher = fetcher;
|
||||
}
|
||||
|
||||
public supports(ctx: Context, url: URL): boolean {
|
||||
return null !== url.host.match(/mixdrop/) && supportsMediaFlowProxy(ctx);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
import * as cheerio from 'cheerio';
|
||||
import { NotFoundError } from '../error';
|
||||
import { Context, CountryCode, Format, UrlResult } from '../types';
|
||||
import { Fetcher } from '../utils';
|
||||
import { Extractor } from './Extractor';
|
||||
|
||||
export class SaveFiles extends Extractor {
|
||||
|
|
@ -9,14 +8,6 @@ export class SaveFiles extends Extractor {
|
|||
|
||||
public readonly label = 'SaveFiles';
|
||||
|
||||
private readonly fetcher: Fetcher;
|
||||
|
||||
public constructor(fetcher: Fetcher) {
|
||||
super();
|
||||
|
||||
this.fetcher = fetcher;
|
||||
}
|
||||
|
||||
public supports(_ctx: Context, url: URL): boolean {
|
||||
return null !== url.host.match(/savefiles|streamhls/);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
import { Context, CountryCode, Format, UrlResult } from '../types';
|
||||
import { Fetcher, guessHeightFromPlaylist } from '../utils';
|
||||
import { guessHeightFromPlaylist } from '../utils';
|
||||
import { Extractor } from './Extractor';
|
||||
|
||||
interface SoaperInfoResponsePartial {
|
||||
|
|
@ -12,14 +12,6 @@ export class Soaper extends Extractor {
|
|||
|
||||
public readonly label = 'Soaper';
|
||||
|
||||
private readonly fetcher: Fetcher;
|
||||
|
||||
public constructor(fetcher: Fetcher) {
|
||||
super();
|
||||
|
||||
this.fetcher = fetcher;
|
||||
}
|
||||
|
||||
public supports(_ctx: Context, url: URL): boolean {
|
||||
return null !== url.host.match(/soaper/) && null !== url.pathname.match(/^\/(episode|movie)_/);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
import { Context, CountryCode, Format, UrlResult } from '../types';
|
||||
import { Fetcher } from '../utils';
|
||||
import { Extractor } from './Extractor';
|
||||
|
||||
export class StreamEmbed extends Extractor {
|
||||
|
|
@ -7,14 +6,6 @@ export class StreamEmbed extends Extractor {
|
|||
|
||||
public readonly label = 'StreamEmbed';
|
||||
|
||||
private readonly fetcher: Fetcher;
|
||||
|
||||
public constructor(fetcher: Fetcher) {
|
||||
super();
|
||||
|
||||
this.fetcher = fetcher;
|
||||
}
|
||||
|
||||
public supports(_ctx: Context, url: URL): boolean {
|
||||
return null !== url.host.match(/bullstream|mp4player|watch\.gxplayer/);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@ import * as cheerio from 'cheerio';
|
|||
import { Context, CountryCode, Format, UrlResult } from '../types';
|
||||
import {
|
||||
buildMediaFlowProxyExtractorRedirectUrl,
|
||||
Fetcher,
|
||||
supportsMediaFlowProxy,
|
||||
} from '../utils';
|
||||
import { Extractor } from './Extractor';
|
||||
|
|
@ -14,14 +13,6 @@ export class Streamtape extends Extractor {
|
|||
|
||||
public override readonly ttl = 0;
|
||||
|
||||
private readonly fetcher: Fetcher;
|
||||
|
||||
public constructor(fetcher: Fetcher) {
|
||||
super();
|
||||
|
||||
this.fetcher = fetcher;
|
||||
}
|
||||
|
||||
public supports(ctx: Context, url: URL): boolean {
|
||||
return null !== url.host.match(/streamtape/) && supportsMediaFlowProxy(ctx);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ import bytes from 'bytes';
|
|||
import * as cheerio from 'cheerio';
|
||||
import { NotFoundError } from '../error';
|
||||
import { Context, CountryCode, Format, UrlResult } from '../types';
|
||||
import { extractUrlFromPacked, Fetcher } from '../utils';
|
||||
import { extractUrlFromPacked, guessHeightFromPlaylist } from '../utils';
|
||||
import { Extractor } from './Extractor';
|
||||
|
||||
export class SuperVideo extends Extractor {
|
||||
|
|
@ -10,14 +10,6 @@ export class SuperVideo extends Extractor {
|
|||
|
||||
public readonly label = 'SuperVideo';
|
||||
|
||||
private readonly fetcher: Fetcher;
|
||||
|
||||
public constructor(fetcher: Fetcher) {
|
||||
super();
|
||||
|
||||
this.fetcher = fetcher;
|
||||
}
|
||||
|
||||
public supports(_ctx: Context, url: URL): boolean {
|
||||
return null !== url.host.match(/supervideo/);
|
||||
}
|
||||
|
|
@ -37,14 +29,20 @@ export class SuperVideo extends Extractor {
|
|||
throw new NotFoundError();
|
||||
}
|
||||
|
||||
const m3u8Url = extractUrlFromPacked(html, [/sources:\[{file:"(.*?)"/]);
|
||||
|
||||
const heightAndSizeMatch = html.match(/\d{3,}x(\d{3,}), ([\d.]+ ?[GM]B)/);
|
||||
const size = heightAndSizeMatch ? bytes.parse(heightAndSizeMatch[2] as string) as number : undefined;
|
||||
const height = heightAndSizeMatch
|
||||
? parseInt(heightAndSizeMatch[1] as string)
|
||||
: await guessHeightFromPlaylist(ctx, this.fetcher, m3u8Url);
|
||||
|
||||
const $ = cheerio.load(html);
|
||||
const title = $('.download__title').text().trim();
|
||||
|
||||
return [
|
||||
{
|
||||
url: extractUrlFromPacked(html, [/sources:\[{file:"(.*?)"/]),
|
||||
url: m3u8Url,
|
||||
format: Format.hls,
|
||||
label: this.label,
|
||||
sourceId: `${this.id}_${countryCode}`,
|
||||
|
|
@ -52,10 +50,8 @@ export class SuperVideo extends Extractor {
|
|||
meta: {
|
||||
countryCodes: [countryCode],
|
||||
title,
|
||||
...(heightAndSizeMatch && {
|
||||
bytes: bytes.parse(heightAndSizeMatch[2] as string) as number,
|
||||
height: parseInt(heightAndSizeMatch[1] as string),
|
||||
}),
|
||||
...(size && { bytes: size }),
|
||||
...(height && { height }),
|
||||
},
|
||||
},
|
||||
];
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
import * as cheerio from 'cheerio';
|
||||
import { Context, CountryCode, Format, UrlResult } from '../types';
|
||||
import { buildMediaFlowProxyExtractorRedirectUrl, Fetcher, supportsMediaFlowProxy } from '../utils';
|
||||
import { buildMediaFlowProxyExtractorRedirectUrl, supportsMediaFlowProxy } from '../utils';
|
||||
import { Extractor } from './Extractor';
|
||||
|
||||
export class Uqload extends Extractor {
|
||||
|
|
@ -12,14 +12,6 @@ export class Uqload extends Extractor {
|
|||
|
||||
public override viaMediaFlowProxy = true;
|
||||
|
||||
private readonly fetcher: Fetcher;
|
||||
|
||||
public constructor(fetcher: Fetcher) {
|
||||
super();
|
||||
|
||||
this.fetcher = fetcher;
|
||||
}
|
||||
|
||||
public supports(ctx: Context, url: URL): boolean {
|
||||
return null !== url.host.match(/uqload/) && supportsMediaFlowProxy(ctx);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,13 +10,11 @@ export class VidSrc extends Extractor {
|
|||
|
||||
public readonly label = 'VidSrc';
|
||||
|
||||
private readonly fetcher: Fetcher;
|
||||
private readonly tlds: NonEmptyArray<string>;
|
||||
|
||||
public constructor(fetcher: Fetcher, tlds: NonEmptyArray<string>) {
|
||||
super();
|
||||
super(fetcher);
|
||||
|
||||
this.fetcher = fetcher;
|
||||
this.tlds = tlds;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@ import bytes from 'bytes';
|
|||
import { Context, CountryCode, Format, UrlResult } from '../types';
|
||||
import {
|
||||
buildMediaFlowProxyExtractorStreamUrl,
|
||||
Fetcher,
|
||||
hasMultiEnabled,
|
||||
iso639FromCountryCode,
|
||||
supportsMediaFlowProxy,
|
||||
|
|
@ -18,14 +17,6 @@ export class VixSrc extends Extractor {
|
|||
|
||||
public override viaMediaFlowProxy = true;
|
||||
|
||||
private readonly fetcher: Fetcher;
|
||||
|
||||
public constructor(fetcher: Fetcher) {
|
||||
super();
|
||||
|
||||
this.fetcher = fetcher;
|
||||
}
|
||||
|
||||
public supports(ctx: Context, url: URL): boolean {
|
||||
return null !== url.host.match(/vixsrc/) && supportsMediaFlowProxy(ctx);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
import { Context, CountryCode, Format, UrlResult } from '../types';
|
||||
import { Fetcher } from '../utils';
|
||||
import { Extractor } from './Extractor';
|
||||
|
||||
interface XPrimePrimeboxResponsePartial {
|
||||
|
|
@ -18,14 +17,6 @@ export class XPrime extends Extractor {
|
|||
|
||||
public readonly label = 'XPrime';
|
||||
|
||||
private readonly fetcher: Fetcher;
|
||||
|
||||
public constructor(fetcher: Fetcher) {
|
||||
super();
|
||||
|
||||
this.fetcher = fetcher;
|
||||
}
|
||||
|
||||
public supports(_ctx: Context, url: URL): boolean {
|
||||
return null !== url.host.match(/xprime/);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
import { Context, CountryCode, Format, UrlResult } from '../types';
|
||||
import { Fetcher } from '../utils';
|
||||
import { Extractor } from './Extractor';
|
||||
|
||||
export class YouTube extends Extractor {
|
||||
|
|
@ -7,14 +6,6 @@ export class YouTube extends Extractor {
|
|||
|
||||
public readonly label = 'YouTube';
|
||||
|
||||
private readonly fetcher: Fetcher;
|
||||
|
||||
public constructor(fetcher: Fetcher) {
|
||||
super();
|
||||
|
||||
this.fetcher = fetcher;
|
||||
}
|
||||
|
||||
public supports(_ctx: Context, url: URL): boolean {
|
||||
return null !== url.host.match(/youtube/) && url.searchParams.has('v');
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,5 @@
|
|||
#EXTM3U
|
||||
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=3056778,RESOLUTION=1920x1080,FRAME-RATE=25.000,CODECS="avc1.640828,mp4a.40.2"
|
||||
https://hfs308.serversicuro.cc/hls/dnzpe7rf5xg4a3gyva3h5orlyw23xosfzwunl5xbmjpz2l6t3doh5zbwynna/index-v1-a1.m3u8
|
||||
|
||||
#EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=215307,RESOLUTION=1920x1080,CODECS="avc1.640828",URI="https://hfs308.serversicuro.cc/hls/dnzpe7rf5xg4a3gyva3h5orlyw23xosfzwunl5xbmjpz2l6t3doh5zbwynna/iframes-v1-a1.m3u8"
|
||||
|
|
@ -15,9 +15,9 @@
|
|||
|
||||
<link rel="stylesheet" href="https://supervideo.cc/assets/css/style.css?v=130">
|
||||
<!-- jsdata -->
|
||||
<script src="https://supervideo.cc/assets/js/libs.min.js?v=2" type="b874150382ffbdb115043102-text/javascript"></script>
|
||||
<script src="https://supervideo.cc/assets/js/common.js?v=2" type="b874150382ffbdb115043102-text/javascript"></script>
|
||||
<script src="https://supervideo.cc/js/xupload.js?v=4" type="b874150382ffbdb115043102-text/javascript"></script>
|
||||
<script src="https://supervideo.cc/assets/js/libs.min.js?v=2" type="74b787644b21e08d1cd03347-text/javascript"></script>
|
||||
<script src="https://supervideo.cc/assets/js/common.js?v=2" type="74b787644b21e08d1cd03347-text/javascript"></script>
|
||||
<script src="https://supervideo.cc/js/xupload.js?v=4" type="74b787644b21e08d1cd03347-text/javascript"></script>
|
||||
<!-- favicon -->
|
||||
<link rel="apple-touch-icon" href="https://supervideo.cc/assets/images/favicon/apple-touch-icon.png" sizes="180x180">
|
||||
<link rel="icon" href="https://supervideo.cc/assets/images/favicon/favicon-32x32.png" sizes="32x32">
|
||||
|
|
@ -65,7 +65,7 @@
|
|||
|
||||
|
||||
|
||||
<script type="b874150382ffbdb115043102-text/javascript">
|
||||
<script type="74b787644b21e08d1cd03347-text/javascript">
|
||||
document.body.classList.remove('is_home')
|
||||
</script>
|
||||
|
||||
|
|
@ -99,30 +99,26 @@
|
|||
<li><a href="https://supervideo.cc/tos">
|
||||
Terms of service
|
||||
</a></li>
|
||||
|
||||
<!---
|
||||
|
||||
<li><a href="https://supervideo.cc/premium">
|
||||
Trust Uploader
|
||||
</a></li>
|
||||
|
||||
|
||||
--->
|
||||
<li><a href="https://supervideo.cc/make_money.html">
|
||||
Make Money
|
||||
</a></li>
|
||||
<li><a href="https://supervideo.cc/checkfiles.html">
|
||||
<!--- <li><a href="https://supervideo.cc/checkfiles.html">
|
||||
Link Checker
|
||||
</a></li>
|
||||
</a></li> --->
|
||||
<li><a href="https://supervideo.cc/contacts">
|
||||
Contact Us
|
||||
</a></li>
|
||||
</ul>
|
||||
<div class="text-center" style="padding-top: 8px;">
|
||||
<!-- <a href="http://www.xvstheme.com/" rel="nofollow" title="Designed by XVSTheme" class="small text-reset" style="display:inline-flex; align-items: center">
|
||||
<span style="margin-right: 4px;">Designed by</span>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="78.1" height="11" viewBox="0 0 78.1 11" xml:space="preserve"><path d="M73.5 7.5h-5.7c0 1.2.7 1.9 1.8 1.9.8 0 1.4-.4 1.6-1h2.4c-.6 1.7-1.9 2.6-3.9 2.6-2.8 0-4.2-1.4-4.2-4.1 0-2.8 1.3-4.1 4.1-4.1 2.7 0 4 1.3 4 3.8 0 .3 0 .6-.1.9zm-3.9-3.1c-1.1 0-1.6.4-1.7 1.6h3.4c-.2-1.1-.7-1.6-1.7-1.6zM62 6.3c0-1-.4-1.4-1.3-1.4-1 0-1.5.5-1.5 1.6v4.2h-2.3V6.3c0-1-.4-1.4-1.3-1.4-1 0-1.5.5-1.5 1.6v4.2h-2.3V3.1l2.1-.1.2 1c.4-.7 1.2-1.1 2.2-1.1 1.3 0 2.2.5 2.6 1.4.5-.9 1.3-1.4 2.5-1.4 2 0 3 1.1 3 3.4v4.5H62V6.3zM44.6 7.5c0 1.2.7 1.9 1.8 1.9.8 0 1.4-.4 1.6-1h2.4c-.5 1.7-1.8 2.6-3.8 2.6-2.8 0-4.2-1.4-4.2-4.1 0-2.8 1.3-4.1 4.1-4.1 2.7 0 4 1.3 4 3.8 0 .3 0 .6-.1.9h-5.8zm1.8-3.1c-1.1 0-1.6.4-1.7 1.6H48c-.1-1.1-.6-1.6-1.6-1.6zm-7.6 1.9c0-1-.4-1.4-1.4-1.4-1.2 0-1.6.5-1.6 1.6v4.2h-2.3V0h2.3v3.8c.4-.6 1.2-1 2.2-1 2.1 0 3.1 1.1 3.1 3.4v4.5h-2.4c.1.1.1-4.4.1-4.4zM27.4 7.6V5.2h-1.1V3.5l1.1-.4V1.4h2.3v1.7H32v2.1h-2.3v2.3c0 .9.3 1.2 1.2 1.2h1v2.1h-1.3c-2.3 0-3.2-.9-3.2-3.2zm-4.6-1.5c2.2.4 2.8.9 2.8 2.4S24.1 11 22 11c-2.4 0-3.8-.9-4.1-2.6h2.3c.2.6.7 1 1.7 1 .8 0 1.3-.4 1.3-.8 0-.5-.2-.7-1.2-.8l-1.5-.2c-1.8-.3-2.6-1-2.6-2.1C17.9 4 19.3 3 21.5 3c2.3 0 3.7.9 3.8 2.4h-2.4c-.1-.5-.7-.8-1.6-.8-.7 0-1.2.3-1.2.8 0 .4.2.6 1 .7.3-.1 1.7 0 1.7 0zM13.2 11c-2.2 0-3.1-1-3.5-3.5L9 3.1h2.3l.7 4.3c.2 1.1.5 1.5 1.2 1.5s1-.4 1.2-1.5l.6-4.3h2.4l-.7 4.4c-.4 2.5-1.4 3.5-3.5 3.5zm-7.3-.2L4.4 8.4l-1.6 2.3H0l2.8-3.9L.1 3.1h2.8l1.4 2.3 1.4-2.3h2.8L6 6.9l2.8 3.9H5.9z" fill="#000222"/><path d="M78.1 8.7h-2.6V11h2.6V8.7z" fill="#28e98c"/></svg>
|
||||
</a> -->
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
<script src="/cdn-cgi/scripts/7d0fa10a/cloudflare-static/rocket-loader.min.js" data-cf-settings="b874150382ffbdb115043102-|49" defer></script><script>(function(){function c(){var b=a.contentDocument||a.contentWindow.document;if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'94f452026a3f915f',t:'MTc0OTg0NjM1OS4wMDAwMDA='};var a=document.createElement('script');a.nonce='';a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script></body>
|
||||
<script src="/cdn-cgi/scripts/7d0fa10a/cloudflare-static/rocket-loader.min.js" data-cf-settings="74b787644b21e08d1cd03347-|49" defer></script><script>(function(){function c(){var b=a.contentDocument||a.contentWindow.document;if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'9765f2e01875d376',t:'MTc1NjQwNjU0OS4wMDAwMDA='};var a=document.createElement('script');a.nonce='';a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script></body>
|
||||
</html>
|
||||
|
|
@ -3,10 +3,10 @@
|
|||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<link rel="stylesheet" type="text/css" href="https://supervideo.cc/css/main.css">
|
||||
<link rel="icon" href="https://supervideo.cc/assets/images/favicon/favicon.ico">
|
||||
<script language="JavaScript" type="8b934779d6a69f9f55f2b508-text/javascript" CHARSET="UTF-8" src="https://supervideo.cc/js/jquery.min.js"></script>
|
||||
<script language="JavaScript" type="8b934779d6a69f9f55f2b508-text/javascript" src="https://supervideo.cc/js/xupload.js"></script>
|
||||
<script language="JavaScript" type="8b934779d6a69f9f55f2b508-text/javascript" CHARSET="UTF-8" src="https://supervideo.cc/js/jquery.cookie.js"></script>
|
||||
<script type="8b934779d6a69f9f55f2b508-text/javascript">
|
||||
<script language="JavaScript" type="bd8624492673b17e8efd29d5-text/javascript" CHARSET="UTF-8" src="https://supervideo.cc/js/jquery.min.js"></script>
|
||||
<script language="JavaScript" type="bd8624492673b17e8efd29d5-text/javascript" src="https://supervideo.cc/js/xupload.js"></script>
|
||||
<script language="JavaScript" type="bd8624492673b17e8efd29d5-text/javascript" CHARSET="UTF-8" src="https://supervideo.cc/js/jquery.cookie.js"></script>
|
||||
<script type="bd8624492673b17e8efd29d5-text/javascript">
|
||||
$.cookie('file_id', '2481142', { expires: 10 });
|
||||
$.cookie('aff', '21776', { expires: 10 });
|
||||
|
||||
|
|
@ -17,8 +17,8 @@ $.cookie('aff', '21776', { expires: 10 });
|
|||
|
||||
|
||||
<!--100% ads-->
|
||||
<script src="/9271593.js" type="8b934779d6a69f9f55f2b508-text/javascript"></script>
|
||||
<script src="/9271609.js" type="8b934779d6a69f9f55f2b508-text/javascript"></script>
|
||||
<script src="/9271593.js" type="bd8624492673b17e8efd29d5-text/javascript"></script>
|
||||
<script src="/9271609.js" type="bd8624492673b17e8efd29d5-text/javascript"></script>
|
||||
<script data-cfasync="false" async type="text/javascript" src="//bu.stummelbeelbow.com/r5anaGaI7UQV/115547"></script>
|
||||
|
||||
|
||||
|
|
@ -39,10 +39,10 @@ $.cookie('aff', '21776', { expires: 10 });
|
|||
<div id="play_limit_box">
|
||||
<a href="/premium.html" target="_blank">Upgrade you account</a> to watch videos with no limits!
|
||||
</div>
|
||||
<script type="8b934779d6a69f9f55f2b508-text/javascript" src='https://supervideo.cc/player8/jwplayer.js'></script>
|
||||
<script type="8b934779d6a69f9f55f2b508-text/javascript">jwplayer.key="9dOyFG96QFb9AWbR+FhhislXHfV1gIhrkaxLYfLydfiYyC0s";</script>
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-46849459-36" type="8b934779d6a69f9f55f2b508-text/javascript"></script>
|
||||
<script type="8b934779d6a69f9f55f2b508-text/javascript">
|
||||
<script type="bd8624492673b17e8efd29d5-text/javascript" src='https://supervideo.cc/player8/jwplayer.js'></script>
|
||||
<script type="bd8624492673b17e8efd29d5-text/javascript">jwplayer.key="9dOyFG96QFb9AWbR+FhhislXHfV1gIhrkaxLYfLydfiYyC0s";</script>
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-46849459-36" type="bd8624492673b17e8efd29d5-text/javascript"></script>
|
||||
<script type="bd8624492673b17e8efd29d5-text/javascript">
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
function gtag(){dataLayer.push(arguments);}
|
||||
gtag('js', new Date());
|
||||
|
|
@ -56,8 +56,8 @@ $.cookie('aff', '21776', { expires: 10 });
|
|||
<h5 style="margin-bottom:10px;font-weight:bold;color:#fff; font-size:15px;" id="resume-title"></h5>
|
||||
<p style="margin-bottom:10px;opacity:.65" id="resume-text"></p>
|
||||
<div style="display:flex;gap:.4rem; align-items-center;justify-content:center">
|
||||
<button onclick="if (!window.__cfRLUnblockHandlers) return false; resumeVideo()" id="resume-btn" style="border:0;cursor:pointer;border-radius:5px; padding:.5rem .75rem; color:#fff;background: linear-gradient(90deg, #32A7FF 0%, #6E2FFF 100%);color:#fff" data-cf-modified-8b934779d6a69f9f55f2b508-=""></button>
|
||||
<button onclick="if (!window.__cfRLUnblockHandlers) return false; cancelResume()" id="cancel-btn" style="border:0;cursor:pointer;border-radius:5px;padding:.5rem .75rem; color:#fff;background:rgba(255,255,255,.15);color:#fff" data-cf-modified-8b934779d6a69f9f55f2b508-=""></button>
|
||||
<button onclick="if (!window.__cfRLUnblockHandlers) return false; resumeVideo()" id="resume-btn" style="border:0;cursor:pointer;border-radius:5px; padding:.5rem .75rem; color:#fff;background: linear-gradient(90deg, #32A7FF 0%, #6E2FFF 100%);color:#fff" data-cf-modified-bd8624492673b17e8efd29d5-=""></button>
|
||||
<button onclick="if (!window.__cfRLUnblockHandlers) return false; cancelResume()" id="cancel-btn" style="border:0;cursor:pointer;border-radius:5px;padding:.5rem .75rem; color:#fff;background:rgba(255,255,255,.15);color:#fff" data-cf-modified-bd8624492673b17e8efd29d5-=""></button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -67,19 +67,19 @@ $.cookie('aff', '21776', { expires: 10 });
|
|||
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="https://supervideo.cc/assets/player/myskinfile.css?v=11">
|
||||
<script src="https://supervideo.cc/js/pop.js" type="8b934779d6a69f9f55f2b508-text/javascript"></script>
|
||||
<script src="https://supervideo.cc/js/pop.js" type="bd8624492673b17e8efd29d5-text/javascript"></script>
|
||||
<div id='vplayer' style="width:100%;height:100%;text-align:center;"><img src="/images/inv.png" style="width:100%;height:100%;"></div>
|
||||
</div>
|
||||
|
||||
|
||||
<script type="8b934779d6a69f9f55f2b508-text/javascript">eval(function(p,a,c,k,e,d){while(c--)if(k[c])p=p.replace(new RegExp('\\b'+c.toString(a)+'\\b','g'),k[c]);return p}('n("57").56({55:[{h:"c://54.53.b/52/,51,.4z/4y.4x"}],4w:"c://1y.g.b/4v.1x",4u:"21%",4t:"21%",4s:"4r",4q:"20.1z",4p:\'4o\',4n:"10",4m:"10",4l:"4k",4j:"4i",4h:[0.25,0.5,0.4g,1,1.25,1.5,2],4f:{4e:"4d"},4c:[{h:"/4b?1o=4a&49=20.1z&48=c://1y.g.b/47.1x",13:"46"},{h:"/1w/1v/45.1u",1t:"44",13:"11"},{h:"/1w/1v/43.1u",1t:"42",13:"11"}],11:{41:\'#40\',3z:12,3y:"3x",3w:0,3v:\'q\',3u:3t},3s:"3r",3q:"",3p:{h:"c://g.b/17/3o.16",3n:"c://g.b/m",a:"14-3m",3l:"5",1p:10},3k:{}});k u,z,y=0;k 3j=0,3i=0;k 4=n();4.d(\'9\',3(x){f(5>0&&x.a>=5&&z!=1){z=1;$(\'w.3h\').3g(\'3f\')}f(y==0&&x.a>=1s&&x.a<=(1s+2)){y=x.a}});4.d(\'1a\',3(x){1r(x)});4.d(\'3e\',3(){$(\'w.1q\').3d()});3 1r(x){$(\'w.1q\').1p();f(u)3c;u=1;l=0;f(15.3b===3a){l=1}$.39(\'/38?1o=37&36=m&35=34-50-33-32-31&30=1&l=\'+l,3(1n){$(\'#2z\').2y(1n)})}4.d(\'9\',3(e){f(e.a>1){p.19(\'o\',e.a)}});k i=p.2x(\'o\');4.d(\'18\',3(){f(i>0){1i(i)}});3 1d(9){8.7("6-2w").j=\'2v 2u?\';8.7("6-2t").j=\'2s 2r! 2q 1l 1k 2p \'+9+\'. 2o 1m 2n 2m 6 2l 2k 1m 1l 1k?\';8.7("6-1j").j=\'2j, 2i\';8.7("2h-1j").j=\'2g, 2f\'}3 1i(9){1h 1c=1g.1f(9/1e);1h 1b=1g.1f(9%1e).2e().2d(2,\'0\');1d(1c+\':\'+1b);8.7("6-t").s.r=\'2c\'}3 2b(){4.2a(i);4.1a();8.7("6-t").s.r=\'q\'}3 29(){8.7("6-t").s.r=\'q\';p.19(\'o\',\'\')}4.d(\'18\',3(){});n().28("c://g.b/17/27.16","26",3(){15.14.24.23=\'/v/m\'},"22");',36,188,'|||function|player||resume|getElementById|document|time|position|cc|https|on||if|supervideo|file|lastt|innerHTML|var|adb|bj6szat1pval|jwplayer|ttbj6szat1pval|localStorage|none|display|style|modal|vvplay||div||x2ok|vvad|true|captions||kind|top|window|png|images|ready|setItem|play|seconds|minutes|translateModal|60|floor|Math|const|showResumeModal|btn|off|left|you|data|op|hide|video_ad|doPlay|701|label|vtt|00496|srt|jpg|img|69|2804|100|download11|href|location||Download|download2|addButton|cancelResume|seek|resumeVideo|flex|padStart|toString|thanks|No|cancel|please|Yes|where|watching|to|like|Would|at|You|back|Welcome|text|playing|Resume|title|getItem|html|fviews|embed|79c3dc17075b0355f2fdc16c265e0cd0|1749846360|99|2481142|hash|file_code|view|dl|get|undefined|cRAds|return|show|complete|slow|fadeIn|video_ad_fadein|vastdone2|vastdone1|cast|margin|right|link|logo_p|logo|aboutlink|xvs|abouttext|90|fontOpacity|edgeStyle|backgroundOpacity|Verdana|fontFamily|fontSize|FFFFFF|color|German|bj6szat1pval_German|English|bj6szat1pval_English|thumbnails|bj6szat1pval0000|url|length|get_slides|dlf|tracks|myskin|name|skin|75|playbackRateControls|start|startparam|html5|primary|hlshtml|androidhls|metadata|preload|duration|uniform|stretching|height|width|bj6szat1pval_xt|image|m3u8|master|urlset||dnzpe7rf5xg4a3gyva3h5orlyw23xosfzwunl5xbmjpz2hqr27aodtfrseia|hls|serversicuro|hfs308|sources|setup|vplayer'.split('|')))
|
||||
<script type="bd8624492673b17e8efd29d5-text/javascript">eval(function(p,a,c,k,e,d){while(c--)if(k[c])p=p.replace(new RegExp('\\b'+c.toString(a)+'\\b','g'),k[c]);return p}('o("57").56({55:[{i:"d://54.53.c/52/,51,.50/4z.4y"}],4x:"d://1z.h.c/4w.1y",4v:"22%",4u:"22%",4t:"4s",4r:"21.20",4q:\'4p\',4o:"11",4n:"11",4m:"4l",4k:"4j",4i:[0.25,0.5,0.4h,1,1.25,1.5,2],4g:{4f:"4e"},4d:[{i:"/4c?1p=4b&4a=21.20&49=d://1z.h.c/48.1y",14:"47"},{i:"/1x/1w/46.1v",1u:"45",14:"13"},{i:"/1x/1w/44.1v",1u:"43",14:"13"}],13:{42:\'#41\',40:12,3z:"3y",3x:0,3w:\'r\',3v:3u},3t:"3s",3r:"",3q:{i:"d://h.c/18/3p.17",3o:"d://h.c/n",b:"15-3n",3m:"5",1q:11},3l:{}});l w,10,z=0;l 3k=0,3j=0;l 6=o();6.f(\'a\',4(x){g(5>0&&x.b>=5&&10!=1){10=1;$(\'y.3i\').3h(\'3g\')}g(z==0&&x.b>=1t&&x.b<=(1t+2)){z=x.b}});6.f(\'1b\',4(x){1s(x)});6.f(\'3f\',4(){$(\'y.1r\').3e()});4 1s(x){$(\'y.1r\').1q();g(w)3d;w=1;m=0;g(16.3c===3b){m=1}$.3a(\'/39?1p=38&37=n&36=35-3-34-33-32&31=1&m=\'+m,4(1o){$(\'#30\').2z(1o)})}6.f(\'a\',4(e){g(e.b>1){q.1a(\'p\',e.b)}});l j=q.2y(\'p\');6.f(\'19\',4(){g(j>0){1j(j)}});4 1e(a){9.8("7-2x").k=\'2w 2v?\';9.8("7-2u").k=\'2t 2s! 2r 1m 1l 2q \'+a+\'. 2p 1n 2o 2n 7 2m 2l 1n 1m 1l?\';9.8("7-1k").k=\'2k, 2j\';9.8("2i-1k").k=\'2h, 2g\'}4 1j(a){1i 1d=1h.1g(a/1f);1i 1c=1h.1g(a%1f).2f().2e(2,\'0\');1e(1d+\':\'+1c);9.8("7-u").t.s=\'2d\'}4 2c(){6.2b(j);6.1b();9.8("7-u").t.s=\'r\'}4 2a(){9.8("7-u").t.s=\'r\';q.1a(\'p\',\'\')}6.f(\'19\',4(){});o().29("d://h.c/18/28.17","27",4(){16.15.26.24=\'/v/n\'},"23");',36,188,'||||function||player|resume|getElementById|document|time|position|cc|https||on|if|supervideo|file|lastt|innerHTML|var|adb|bj6szat1pval|jwplayer|ttbj6szat1pval|localStorage|none|display|style|modal||vvplay||div|x2ok|vvad|true||captions|kind|top|window|png|images|ready|setItem|play|seconds|minutes|translateModal|60|floor|Math|const|showResumeModal|btn|off|left|you|data|op|hide|video_ad|doPlay|841|label|vtt|00496|srt|jpg|img|69|2804|100|download11|href||location|Download|download2|addButton|cancelResume|seek|resumeVideo|flex|padStart|toString|thanks|No|cancel|please|Yes|where|watching|to|like|Would|at|You|back|Welcome|text|playing|Resume|title|getItem|html|fviews|embed|2be1281b80ff2b787e1afc7f3fb86d72|1756406550|161|2481142|hash|file_code|view|dl|get|undefined|cRAds|return|show|complete|slow|fadeIn|video_ad_fadein|vastdone2|vastdone1|cast|margin|right|link|logo_p|logo|aboutlink|xvs|abouttext|90|fontOpacity|edgeStyle|backgroundOpacity|Verdana|fontFamily|fontSize|FFFFFF|color|German|bj6szat1pval_German|English|bj6szat1pval_English|thumbnails|bj6szat1pval0000|url|length|get_slides|dlf|tracks|myskin|name|skin|75|playbackRateControls|start|startparam|html5|primary|hlshtml|androidhls|metadata|preload|duration|uniform|stretching|height|width|bj6szat1pval_xt|image|m3u8|master|urlset|dnzpe7rf5xg4a3gyva3h5orlyw23xosfzwunl5xbmjpz2l6t3doh5zbwynna|hls|serversicuro|hfs308|sources|setup|vplayer'.split('|')))
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
<script type="8b934779d6a69f9f55f2b508-text/javascript">
|
||||
<script type="bd8624492673b17e8efd29d5-text/javascript">
|
||||
$(function() {
|
||||
|
||||
});
|
||||
</script>
|
||||
<script src="/cdn-cgi/scripts/7d0fa10a/cloudflare-static/rocket-loader.min.js" data-cf-settings="8b934779d6a69f9f55f2b508-|49" defer></script><script>(function(){function c(){var b=a.contentDocument||a.contentWindow.document;if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'94f452056bef915f',t:'MTc0OTg0NjM2MC4wMDAwMDA='};var a=document.createElement('script');a.nonce='';a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script></BODY></HTML>
|
||||
<script src="/cdn-cgi/scripts/7d0fa10a/cloudflare-static/rocket-loader.min.js" data-cf-settings="bd8624492673b17e8efd29d5-|49" defer></script><script>(function(){function c(){var b=a.contentDocument||a.contentWindow.document;if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'9765f2e5fc71d376',t:'MTc1NjQwNjU1MC4wMDAwMDA='};var a=document.createElement('script');a.nonce='';a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script></BODY></HTML>
|
||||
|
|
|
|||
|
|
@ -11,11 +11,12 @@ exports[`SuperVideo embed only 1`] = `
|
|||
"countryCodes": [
|
||||
"it",
|
||||
],
|
||||
"height": 1080,
|
||||
"title": "",
|
||||
},
|
||||
"sourceId": "supervideo_it",
|
||||
"ttl": 900000,
|
||||
"url": "https://hfs308.serversicuro.cc/hls/,dnzpe7rf5xg4a3gyva3h5orlyw23xosfzwunl5xbmjpz2hqr27aodtfrseia,.urlset/master.m3u8",
|
||||
"url": "https://hfs308.serversicuro.cc/hls/,dnzpe7rf5xg4a3gyva3h5orlyw23xosfzwunl5xbmjpz2l6t3doh5zbwynna,.urlset/master.m3u8",
|
||||
},
|
||||
]
|
||||
`;
|
||||
|
|
|
|||
|
|
@ -152,7 +152,7 @@ describe('resolve', () => {
|
|||
},
|
||||
{
|
||||
url: new URL('https://working2.com'),
|
||||
format: Format.hls,
|
||||
format: Format.unknown,
|
||||
label: 'working1',
|
||||
sourceId: 'hostercom',
|
||||
meta: {
|
||||
|
|
@ -183,7 +183,7 @@ describe('resolve', () => {
|
|||
},
|
||||
{
|
||||
url: new URL('https://working1.com'),
|
||||
format: Format.hls,
|
||||
format: Format.unknown,
|
||||
label: 'working2',
|
||||
sourceId: 'hostercom',
|
||||
meta: {
|
||||
|
|
@ -248,7 +248,7 @@ describe('resolve', () => {
|
|||
];
|
||||
}
|
||||
|
||||
const streamResolver = new StreamResolver(logger, new ExtractorRegistry(logger, [new MockExtractor()]));
|
||||
const streamResolver = new StreamResolver(logger, new ExtractorRegistry(logger, [new MockExtractor(fetcher)]));
|
||||
|
||||
const streams = await streamResolver.resolve(ctx, [new MockSource()], 'movie', new ImdbId('tt11655566', undefined, undefined));
|
||||
expect(streams).toMatchSnapshot();
|
||||
|
|
|
|||
Loading…
Reference in a new issue