mirror of
https://github.com/movie-web/movie-web.git
synced 2024-12-24 19:31:49 +01:00
Add flixhq provider
Fully working movies provider, high quality m3u8
This commit is contained in:
parent
2fab8d5a44
commit
56c50fbb2f
67
src/providers/list/flixhq/index.ts
Normal file
67
src/providers/list/flixhq/index.ts
Normal 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;
|
||||
},
|
||||
};
|
@ -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[] =
|
||||
|
Loading…
Reference in New Issue
Block a user