1
0
Fork 0
mirror of https://github.com/sussy-code/smov.git synced 2024-12-29 16:07:40 +01:00

Merge pull request #88 from JamesHawkinss/provider/flixhq

Add flixhq provider
This commit is contained in:
James Hawkins 2022-11-05 09:32:52 +00:00 committed by GitHub
commit f745dd380d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
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=${encodeURIComponent(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/${encodeURIComponent(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=${encodeURIComponent(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[] =