mirror of
https://github.com/movie-web/providers.git
synced 2025-09-13 14:53:24 +00:00
@@ -2,6 +2,10 @@
|
|||||||
title: 'Changelog'
|
title: 'Changelog'
|
||||||
---
|
---
|
||||||
|
|
||||||
|
# Version 2.0.1
|
||||||
|
- Fixed issue where febbox-mp4 would not show all qualities
|
||||||
|
- Fixed issue where discoverEmbeds event would not show the embeds in the right order
|
||||||
|
|
||||||
# Version 2.0.0
|
# Version 2.0.0
|
||||||
|
|
||||||
::alert{type="warning"}
|
::alert{type="warning"}
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@movie-web/providers",
|
"name": "@movie-web/providers",
|
||||||
"version": "2.0.0",
|
"version": "2.0.1",
|
||||||
"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",
|
||||||
|
@@ -4,24 +4,35 @@ import { ScrapeContext } from '@/utils/context';
|
|||||||
|
|
||||||
const allowedQualities = ['360', '480', '720', '1080', '4k'];
|
const allowedQualities = ['360', '480', '720', '1080', '4k'];
|
||||||
|
|
||||||
export async function getStreamQualities(ctx: ScrapeContext, apiQuery: object) {
|
interface FebboxQuality {
|
||||||
const mediaRes: { list: { path: string; quality: string; fid?: number }[] } = (await sendRequest(ctx, apiQuery)).data;
|
path: string;
|
||||||
|
real_quality: string;
|
||||||
|
fid?: number;
|
||||||
|
}
|
||||||
|
|
||||||
const qualityMap = mediaRes.list
|
function mapToQuality(quality: FebboxQuality): FebboxQuality | null {
|
||||||
.filter((file) => allowedQualities.includes(file.quality.replace('p', '')))
|
const q = quality.real_quality.replace('p', '').toLowerCase();
|
||||||
.map((file) => ({
|
if (!allowedQualities.includes(q)) return null;
|
||||||
url: file.path,
|
return {
|
||||||
quality: file.quality.replace('p', ''),
|
real_quality: q,
|
||||||
}));
|
path: quality.path,
|
||||||
|
fid: quality.fid,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
export async function getStreamQualities(ctx: ScrapeContext, apiQuery: object) {
|
||||||
|
const mediaRes: { list: FebboxQuality[] } = (await sendRequest(ctx, apiQuery)).data;
|
||||||
|
|
||||||
|
const qualityMap = mediaRes.list.map((v) => mapToQuality(v)).filter((v): v is FebboxQuality => !!v);
|
||||||
|
|
||||||
const qualities: Record<string, StreamFile> = {};
|
const qualities: Record<string, StreamFile> = {};
|
||||||
|
|
||||||
allowedQualities.forEach((quality) => {
|
allowedQualities.forEach((quality) => {
|
||||||
const foundQuality = qualityMap.find((q) => q.quality === quality);
|
const foundQuality = qualityMap.find((q) => q.real_quality === quality && q.path);
|
||||||
if (foundQuality && foundQuality.url) {
|
if (foundQuality) {
|
||||||
qualities[quality] = {
|
qualities[quality] = {
|
||||||
type: 'mp4',
|
type: 'mp4',
|
||||||
url: foundQuality.url,
|
url: foundQuality.path,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@@ -116,9 +116,12 @@ export async function runAllProviders(list: ProviderList, ops: ProviderRunnerOpt
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
if (output.embeds.length > 0) {
|
// run embed scrapers on listed embeds
|
||||||
|
const sortedEmbeds = output.embeds.sort((a, b) => embedIds.indexOf(a.embedId) - embedIds.indexOf(b.embedId));
|
||||||
|
|
||||||
|
if (sortedEmbeds.length > 0) {
|
||||||
ops.events?.discoverEmbeds?.({
|
ops.events?.discoverEmbeds?.({
|
||||||
embeds: output.embeds.map((v, i) => ({
|
embeds: sortedEmbeds.map((v, i) => ({
|
||||||
id: [s.id, i].join('-'),
|
id: [s.id, i].join('-'),
|
||||||
embedScraperId: v.embedId,
|
embedScraperId: v.embedId,
|
||||||
})),
|
})),
|
||||||
@@ -126,10 +129,6 @@ export async function runAllProviders(list: ProviderList, ops: ProviderRunnerOpt
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// run embed scrapers on listed embeds
|
|
||||||
const sortedEmbeds = output.embeds;
|
|
||||||
sortedEmbeds.sort((a, b) => embedIds.indexOf(a.embedId) - embedIds.indexOf(b.embedId));
|
|
||||||
|
|
||||||
for (const ind in sortedEmbeds) {
|
for (const ind in sortedEmbeds) {
|
||||||
if (!Object.prototype.hasOwnProperty.call(sortedEmbeds, ind)) continue;
|
if (!Object.prototype.hasOwnProperty.call(sortedEmbeds, ind)) continue;
|
||||||
const e = sortedEmbeds[ind];
|
const e = sortedEmbeds[ind];
|
||||||
|
Reference in New Issue
Block a user