Browse Source

Merge branch 'dev' into dev

pull/243/head
mrjvs 3 years ago committed by GitHub
parent
commit
3a44eb550d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 21
      src/backend/providers/flixhq.ts
  2. 2
      src/hooks/useSearchQuery.ts
  3. 4
      src/video/state/providers/videoStateProvider.ts
  4. 4
      src/views/developer/VideoTesterView.tsx

21
src/backend/providers/flixhq.ts

@ -10,12 +10,13 @@ import { MWMediaType } from "../metadata/types"; @@ -10,12 +10,13 @@ import { MWMediaType } from "../metadata/types";
const flixHqBase = "https://api.consumet.org/meta/tmdb";
type FlixHQMediaType = "Movie" | "TV Series";
interface FLIXMediaBase {
id: number;
title: string;
url: string;
image: string;
type: "Movie" | "TV Series";
type: FlixHQMediaType;
releaseDate: string;
}
@ -38,9 +39,9 @@ const qualityMap: Record<string, MWStreamQuality> = { @@ -38,9 +39,9 @@ const qualityMap: Record<string, MWStreamQuality> = {
"1080": MWStreamQuality.Q1080P,
};
enum FlixHQMediaType {
MOVIE = "movie",
SERIES = "series",
function flixTypeToMWType(type: FlixHQMediaType) {
if (type === "Movie") return MWMediaType.MOVIE;
return MWMediaType.SERIES;
}
registerProvider({
@ -48,7 +49,6 @@ registerProvider({ @@ -48,7 +49,6 @@ registerProvider({
displayName: "FlixHQ",
rank: 100,
type: [MWMediaType.MOVIE, MWMediaType.SERIES],
async scrape({ media, episode, progress }) {
if (!this.type.includes(media.meta.type)) {
throw new Error("Unsupported type");
@ -65,9 +65,11 @@ registerProvider({ @@ -65,9 +65,11 @@ registerProvider({
if (v.type !== "Movie" && v.type !== "TV Series") return false;
return (
compareTitle(v.title, media.meta.title) &&
flixTypeToMWType(v.type) === media.meta.type &&
v.releaseDate === media.meta.year
);
});
if (!foundItem) throw new Error("No watchable item found");
// get media info
@ -75,15 +77,12 @@ registerProvider({ @@ -75,15 +77,12 @@ registerProvider({
const mediaInfo = await proxiedFetch<any>(`/info/${foundItem.id}`, {
baseURL: flixHqBase,
params: {
type:
media.meta.type === MWMediaType.MOVIE
? FlixHQMediaType.MOVIE
: FlixHQMediaType.SERIES,
type: flixTypeToMWType(foundItem.type),
},
});
if (!mediaInfo.id) throw new Error("No watchable item found");
// get stream info from media
progress(75);
progress(50);
let episodeId: string | undefined;
if (media.meta.type === MWMediaType.MOVIE) {
@ -98,7 +97,7 @@ registerProvider({ @@ -98,7 +97,7 @@ registerProvider({
episodeId = season.episodes.find((o: any) => o.episode === episodeNo).id;
}
if (!episodeId) throw new Error("No watchable item found");
progress(75);
const watchInfo = await proxiedFetch<any>(`/watch/${episodeId}`, {
baseURL: flixHqBase,
params: {

2
src/hooks/useSearchQuery.ts

@ -6,7 +6,7 @@ function getInitialValue(params: { type: string; query: string }) { @@ -6,7 +6,7 @@ function getInitialValue(params: { type: string; query: string }) {
const type =
Object.values(MWMediaType).find((v) => params.type === v) ||
MWMediaType.MOVIE;
const searchQuery = params.query || "";
const searchQuery = decodeURIComponent(params.query || "");
return { type, searchQuery };
}

4
src/video/state/providers/videoStateProvider.ts

@ -277,7 +277,9 @@ export function createVideoStateProvider( @@ -277,7 +277,9 @@ export function createVideoStateProvider(
updateMediaPlaying(descriptor, state);
};
const fullscreenchange = () => {
state.interface.isFullscreen = !!document.fullscreenElement;
state.interface.isFullscreen =
!!document.fullscreenElement || // other browsers
!!(document as any).webkitFullscreenElement; // safari
updateInterface(descriptor, state);
};
const volumechange = async () => {

4
src/views/developer/VideoTesterView.tsx

@ -64,8 +64,8 @@ export function VideoTesterView() { @@ -64,8 +64,8 @@ export function VideoTesterView() {
/>
<SourceController
source={video.streamUrl}
type={MWStreamType.MP4}
quality={MWStreamQuality.Q720P}
type={videoType}
quality={MWStreamQuality.QUNKNOWN}
/>
</VideoPlayer>
</div>

Loading…
Cancel
Save