Add flixhq provider

Fully working movies provider, high quality m3u8
This commit is contained in:
James Hawkins 2022-11-02 11:25:21 +00:00
parent 2fab8d5a44
commit 56c50fbb2f
2 changed files with 69 additions and 0 deletions

View File

@ -0,0 +1,67 @@
import {
MWMediaProvider,
MWMediaType,
MWPortableMedia,
MWMediaStream,
MWQuery,
MWProviderMediaResult
} from "providers/types";
import { CORS_PROXY_URL } from "mw_constants";
export const flixhqProvider: MWMediaProvider = {
id: "flixhq",
enabled: true,
type: [MWMediaType.MOVIE],
displayName: "flixhq",
async getMediaFromPortable(media: MWPortableMedia): Promise<MWProviderMediaResult> {
const searchRes = await fetch(
`${CORS_PROXY_URL}https://api.consumet.org/movies/flixhq/info?id=${media.mediaId}`
).then((d) => d.json());
return {
...media,
title: searchRes.title,
year: searchRes.releaseDate,
} as MWProviderMediaResult;
},
async searchForMedia(query: MWQuery): Promise<MWProviderMediaResult[]> {
const searchRes = await fetch(
`${CORS_PROXY_URL}https://api.consumet.org/movies/flixhq/${query.searchQuery}`
).then((d) => d.json());
const results: MWProviderMediaResult[] = (searchRes || []).results.map((item: any) => ({
title: item.title,
year: item.releaseDate,
mediaId: item.id,
type: MWMediaType.MOVIE,
}));
return results;
},
async getStream(media: MWPortableMedia): Promise<MWMediaStream> {
const searchRes = await fetch(
`${CORS_PROXY_URL}https://api.consumet.org/movies/flixhq/info?id=${media.mediaId}`
).then((d) => d.json());
const params = new URLSearchParams({
episodeId: searchRes.episodes[0].id,
mediaId: media.mediaId
})
const watchRes = await fetch(
`${CORS_PROXY_URL}https://api.consumet.org/movies/flixhq/watch?${encodeURIComponent(params.toString())}`
).then((d) => d.json());
const source = watchRes.sources.reduce((p: any, c: any) => (c.quality > p.quality) ? c : p);
return {
url: source.url,
type: source.isM3U8 ? "m3u8" : "mp4",
captions: []
} as MWMediaStream;
},
};

View File

@ -3,12 +3,14 @@ import { gDrivePlayerScraper } from "providers/list/gdriveplayer";
import { MWWrappedMediaProvider, WrapProvider } from "providers/wrapper";
import { gomostreamScraper } from "providers/list/gomostream";
import { xemovieScraper } from "providers/list/xemovie";
import { flixhqProvider } from "providers/list/flixhq";
export const mediaProvidersUnchecked: MWWrappedMediaProvider[] = [
WrapProvider(theFlixScraper),
WrapProvider(gDrivePlayerScraper),
WrapProvider(gomostreamScraper),
WrapProvider(xemovieScraper),
WrapProvider(flixhqProvider),
];
export const mediaProviders: MWWrappedMediaProvider[] =