diff --git a/src/components/player/IframePlayer.jsx b/src/components/player/IframePlayer.jsx index efbaab1..437032f 100644 --- a/src/components/player/IframePlayer.jsx +++ b/src/components/player/IframePlayer.jsx @@ -1,10 +1,8 @@ /* eslint-disable react/prop-types */ import { useEffect, useState } from "react"; import BouncingLoader from "../ui/bouncingloader/Bouncingloader"; -import axios from "axios"; export default function IframePlayer({ - animeId, episodeId, serverName, servertype, @@ -14,7 +12,6 @@ export default function IframePlayer({ playNext, autoNext, }) { - const api_url=import.meta.env.VITE_API_URL; const baseURL = serverName.toLowerCase() === "hd-1" ? import.meta.env.VITE_BASE_IFRAME_URL @@ -37,26 +34,7 @@ export default function IframePlayer({ setIframeLoaded(false); setIframeSrc(""); - const lowerName = serverName.toLowerCase(); - - if (lowerName === "hd-1" || lowerName === "hd-4") { - setIframeSrc(`${baseURL}/${episodeId}/${servertype}`); - } else if (lowerName === "hd-2" || lowerName === "hd-3") { - try { - const res = await axios.get( - `${api_url}/stream?id=${animeId}?ep=${episodeId}&server=${serverName}&type=${servertype}` - ); - - const link = res?.data?.results?.streamingLink?.link; - if (link) { - setIframeSrc(`${link}&_debug=true`); - } else { - console.error("Streaming link not found in response"); - } - } catch (err) { - console.error("Failed to fetch streaming link:", err); - } - } + setIframeSrc(`${baseURL}/${episodeId}/${servertype}`); }; loadIframeUrl(); diff --git a/src/components/player/Player.jsx b/src/components/player/Player.jsx index bcf29bb..299c0fd 100644 --- a/src/components/player/Player.jsx +++ b/src/components/player/Player.jsx @@ -50,7 +50,6 @@ export default function Player({ thumbnail, intro, outro, - serverName, autoSkipIntro, autoPlay, autoNext, @@ -213,6 +212,11 @@ export default function Player({ const iframeUrl = streamInfo?.streamingLink?.iframe; const headers = {}; headers.referer=new URL(iframeUrl).origin+"/"; + console.log(m3u8proxy[Math.floor(Math.random() * m3u8proxy?.length)] + + encodeURIComponent(streamUrl) + + "&headers=" + + encodeURIComponent(JSON.stringify(headers))); + const art = new Artplayer({ url: m3u8proxy[Math.floor(Math.random() * m3u8proxy?.length)] + @@ -235,6 +239,11 @@ export default function Player({ autoOrientation: true, fastForward: true, aspectRatio: true, + moreVideoAttr: { + crossOrigin: 'anonymous', + preload: 'none', + playsInline: true, + }, plugins: [ artplayerPluginHlsControl({ quality: { diff --git a/src/hooks/useWatch.js b/src/hooks/useWatch.js index cc416bb..2771186 100644 --- a/src/hooks/useWatch.js +++ b/src/hooks/useWatch.js @@ -144,26 +144,12 @@ export const useWatch = (animeId, initialEpisodeId) => { } const savedServerName = localStorage.getItem("server_name"); const savedServerType = localStorage.getItem("server_type"); - let initialServer = - data.find( - (s) => - s.serverName === savedServerName && s.type === savedServerType - ) || - data.find((s) => s.serverName === savedServerName) || - data.find((s) => s.type === savedServerType) || - data.find( - (s) => s.serverName === "HD-1" && s.type === savedServerType - ) || - data.find( - (s) => s.serverName === "HD-2" && s.type === savedServerType - ) || - data.find( - (s) => s.serverName === "HD-3" && s.type === savedServerType - ) || - data.find( - (s) => s.serverName === "HD-4" && s.type === savedServerType - ) || + const initialServer = + filteredServers.find(s => s.serverName === savedServerName && s.type === savedServerType) || + filteredServers.find(s => s.serverName === savedServerName) || + filteredServers.find(s => s.type === savedServerType && ["HD-1", "HD-2", "HD-3", "HD-4"].includes(s.serverName)) || filteredServers[0]; + setServers(filteredServers); setActiveServerType(initialServer?.type); setActiveServerName(initialServer?.serverName); @@ -189,8 +175,7 @@ export const useWatch = (animeId, initialEpisodeId) => { ) return; if ( - (activeServerName?.toLowerCase() === "hd-1" - || activeServerName?.toLowerCase() === "hd-2"|| activeServerName?.toLowerCase() === "hd-3"|| activeServerName?.toLowerCase() === "hd-4") + (activeServerName?.toLowerCase() === "hd-1" || activeServerName?.toLowerCase() === "hd-4") && !serverLoading ) { @@ -206,7 +191,7 @@ export const useWatch = (animeId, initialEpisodeId) => { const data = await getStreamInfo( animeId, episodeId, - server.serverName.toLowerCase(), + server.serverName.toLowerCase()==="hd-3"?"hd-1":server.serverName.toLowerCase(), server.type.toLowerCase() ); setStreamInfo(data); diff --git a/src/pages/animeInfo/AnimeInfo.jsx b/src/pages/animeInfo/AnimeInfo.jsx index a59b931..992be32 100644 --- a/src/pages/animeInfo/AnimeInfo.jsx +++ b/src/pages/animeInfo/AnimeInfo.jsx @@ -317,24 +317,47 @@ function AnimeInfo({ random = false }) { {seasons?.length > 0 && (
+ {/* Dots Pattern Overlay */} +
{season.season}