Merge pull request #70 from movie-web/fix/included-disabled-embeds

Add disabled embed filter to scrapeInvidualSource and runAllProviders
This commit is contained in:
William Oldham
2024-01-07 00:35:13 +00:00
committed by GitHub
3 changed files with 18 additions and 4 deletions

4
package-lock.json generated
View File

@@ -1,12 +1,12 @@
{ {
"name": "@movie-web/providers", "name": "@movie-web/providers",
"version": "1.1.5", "version": "2.0.5",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "@movie-web/providers", "name": "@movie-web/providers",
"version": "1.1.5", "version": "2.0.5",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"cheerio": "^1.0.0-rc.12", "cheerio": "^1.0.0-rc.12",

View File

@@ -58,6 +58,14 @@ export async function scrapeInvidualSource(
} }
if (!output) throw new Error('output is null'); if (!output) throw new Error('output is null');
// filter output with only valid embeds that are not disabled
output.embeds = output.embeds.filter((embed) => {
const e = list.embeds.find((v) => v.id === embed.embedId);
if (!e || e.disabled) return false;
return true;
});
if ((!output.stream || output.stream.length === 0) && output.embeds.length === 0) if ((!output.stream || output.stream.length === 0) && output.embeds.length === 0)
throw new NotFoundError('No streams found'); throw new NotFoundError('No streams found');
return output; return output;

View File

@@ -116,8 +116,14 @@ export async function runAllProviders(list: ProviderList, ops: ProviderRunnerOpt
}; };
} }
// run embed scrapers on listed embeds // filter disabled and run embed scrapers on listed embeds
const sortedEmbeds = output.embeds.sort((a, b) => embedIds.indexOf(a.embedId) - embedIds.indexOf(b.embedId)); const sortedEmbeds = output.embeds
.filter((embed) => {
const e = list.embeds.find((v) => v.id === embed.embedId);
if (!e || e.disabled) return false;
return true;
})
.sort((a, b) => embedIds.indexOf(a.embedId) - embedIds.indexOf(b.embedId));
if (sortedEmbeds.length > 0) { if (sortedEmbeds.length > 0) {
ops.events?.discoverEmbeds?.({ ops.events?.discoverEmbeds?.({