Merge pull request #21 from movie-web/dev

Provider package v1.0.3
This commit is contained in:
mrjvs
2023-10-29 21:02:51 +01:00
committed by GitHub
3 changed files with 57 additions and 2 deletions

View File

@@ -1,6 +1,6 @@
{ {
"name": "@movie-web/providers", "name": "@movie-web/providers",
"version": "1.0.2", "version": "1.0.3",
"description": "Package that contains all the providers of movie-web", "description": "Package that contains all the providers of movie-web",
"main": "./lib/index.umd.js", "main": "./lib/index.umd.js",
"types": "./lib/index.d.ts", "types": "./lib/index.d.ts",

View File

@@ -0,0 +1,55 @@
import { makeStandardFetcher } from "@/fetchers/standardFetch";
import { makeProviders } from "@/main/builder";
import { targets } from "@/main/targets";
import { isValidStream } from "@/utils/valid";
import fetch from "node-fetch";
import { describe, it, expect } from "vitest";
describe('isValidStream()', () => {
it('should pass valid streams', () => {
expect(isValidStream({
type: "file",
flags: [],
qualities: {
"1080": {
type: "mp4",
url: "hello-world"
}
}
})).toBe(true);
expect(isValidStream({
type: "hls",
flags: [],
playlist: "hello-world"
})).toBe(true);
});
it('should detect empty qualities', () => {
expect(isValidStream({
type: "file",
flags: [],
qualities: {}
})).toBe(false);
});
it('should detect empty stream urls', () => {
expect(isValidStream({
type: "file",
flags: [],
qualities: {
"1080": {
type: "mp4",
url: "",
}
}
})).toBe(false);
});
it('should detect emtpy HLS playlists', () => {
expect(isValidStream({
type: "hls",
flags: [],
playlist: "",
})).toBe(false);
});
});

View File

@@ -80,7 +80,7 @@ export async function runAllProviders(list: ProviderList, ops: ProviderRunnerOpt
...contextBase, ...contextBase,
media: ops.media, media: ops.media,
}); });
if (!isValidStream(output?.stream)) { if (output?.stream && !isValidStream(output?.stream)) {
throw new NotFoundError('stream is incomplete'); throw new NotFoundError('stream is incomplete');
} }
if (output?.stream && !flagsAllowedInFeatures(ops.features, output.stream.flags)) { if (output?.stream && !flagsAllowedInFeatures(ops.features, output.stream.flags)) {