mirror of
https://github.com/movie-web/movie-web.git
synced 2024-12-25 17:11:51 +01:00
commit
b0822c8ad6
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "movie-web",
|
||||
"version": "2.0.3",
|
||||
"version": "2.0.4",
|
||||
"private": true,
|
||||
"homepage": "https://movie.squeezebox.dev",
|
||||
"dependencies": {
|
||||
|
@ -2,4 +2,4 @@ export const CORS_PROXY_URL = "https://proxy-1.movie-web.workers.dev/?destinatio
|
||||
export const OMDB_API_KEY = "aa0937c0";
|
||||
export const DISCORD_LINK = "https://discord.gg/Jhqt4Xzpfb";
|
||||
export const GITHUB_LINK = "https://github.com/JamesHawkinss/movie-web";
|
||||
export const APP_VERSION = "2.0.3";
|
||||
export const APP_VERSION = "2.0.4";
|
||||
|
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=${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;
|
||||
},
|
||||
};
|
@ -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