aboutsummaryrefslogtreecommitdiff
path: root/components
diff options
context:
space:
mode:
Diffstat (limited to 'components')
-rw-r--r--components/videoPlayer.js88
1 files changed, 85 insertions, 3 deletions
diff --git a/components/videoPlayer.js b/components/videoPlayer.js
index 784d8e9..8c137d1 100644
--- a/components/videoPlayer.js
+++ b/components/videoPlayer.js
@@ -2,6 +2,21 @@ import Player from "../lib/Artplayer";
import { useEffect, useState } from "react";
import { useAniList } from "../lib/useAnilist";
+const fontSize = [
+ {
+ html: "Small",
+ size: "16px",
+ },
+ {
+ html: "Medium",
+ size: "36px",
+ },
+ {
+ html: "Large",
+ size: "56px",
+ },
+];
+
export default function VideoPlayer({
data,
id,
@@ -14,19 +29,40 @@ export default function VideoPlayer({
title,
poster,
proxy,
+ provider,
}) {
const [url, setUrl] = useState("");
const [source, setSource] = useState([]);
const { markProgress } = useAniList(session);
const [resolution, setResolution] = useState("auto");
+ const [subSize, setSubSize] = useState({ size: "16px", html: "Small" });
+ const [defSize, setDefSize] = useState();
+ const [subtitle, setSubtitle] = useState();
+ const [defSub, setDefSub] = useState();
useEffect(() => {
const resol = localStorage.getItem("quality");
+ const sub = JSON.parse(localStorage.getItem("subSize"));
if (resol) {
setResolution(resol);
}
+ if (provider === "zoro") {
+ const size = fontSize.map((i) => {
+ const isDefault = !sub ? i.html === "Small" : i.html === sub?.html;
+ return {
+ ...(isDefault && { default: true }),
+ html: i.html,
+ size: i.size,
+ };
+ });
+
+ const defSize = size?.find((i) => i?.default === true);
+ setDefSize(defSize);
+ setSubSize(size);
+ }
+
async function compiler() {
try {
const referer = data?.headers?.Referer;
@@ -39,9 +75,12 @@ export default function VideoPlayer({
...(isDefault && { default: true }),
html: items.quality === "default" ? "adaptive" : items.quality,
// url: `${proxy}${items.url}`,
- url: `https://cors.moopa.my.id/?url=${encodeURIComponent(
- items.url
- )}${referer ? `&referer=${encodeURIComponent(referer)}` : ""}`,
+ url:
+ provider === "gogoanime"
+ ? `https://cors.moopa.my.id/?url=${encodeURIComponent(
+ items.url
+ )}${referer ? `&referer=${encodeURIComponent(referer)}` : ""}`
+ : `${proxy}${items.url}`,
};
// url: `https://m3u8proxy.moopa.workers.dev/?url=${encodeURIComponent(items.url)}${
// referer ? `&referer=${encodeURIComponent(referer)}` : ""
@@ -54,6 +93,28 @@ export default function VideoPlayer({
setUrl(defSource.url);
}
+ if (provider === "zoro") {
+ const subtitle = data?.subtitles
+ .filter((subtitle) => subtitle.lang !== "Thumbnails")
+ .map((subtitle) => {
+ const isEnglish = subtitle.lang === "English";
+ return {
+ ...(isEnglish && { default: true }),
+ url: subtitle.url,
+ html: `${subtitle.lang}`,
+ };
+ });
+
+ const defSub = data?.subtitles.find((i) => i.lang === "English");
+ // const thumb = data?.subtitles.find((i) => i.lang === "Thumbnails");
+
+ // setThumbnails(thumb?.url);
+ setDefSub(defSub?.url);
+
+ // console.log(subtitle);
+ setSubtitle(subtitle);
+ }
+
// const defUrl = `https://cors.moopa.my.id/?url=${encodeURIComponent(
// sumber.url
// )}${referer ? `&referer=${encodeURIComponent(referer)}` : ""}`;
@@ -77,9 +138,26 @@ export default function VideoPlayer({
autoplay: true,
screenshot: true,
poster: poster ? poster : "",
+ ...(provider === "zoro" && {
+ subtitle: {
+ url: `${defSub}`,
+ // type: "vtt",
+ encoding: "utf-8",
+ default: true,
+ name: "English",
+ escape: false,
+ style: {
+ color: "#FFFF",
+ fontSize: `${defSize?.size}`,
+ },
+ },
+ }),
}}
res={resolution}
quality={source}
+ subSize={subSize}
+ subtitles={subtitle}
+ provider={provider}
style={{
width: "100%",
height: "100%",
@@ -93,6 +171,10 @@ export default function VideoPlayer({
const duration = art.duration;
const percentage = seekTime / duration;
+ if (subSize) {
+ art.subtitle.style.fontSize = subSize?.size;
+ }
+
if (percentage >= 0.9) {
art.currentTime = 0;
console.log("Video started from the beginning");