Merge pull request #20 from movie-web/fix-incomplete-error

Fix "incomplete stream" error on flixhq & zoechip
This commit is contained in:
mrjvs
2023-10-29 20:59:20 +01:00
committed by GitHub
2 changed files with 56 additions and 1 deletions

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)) {