diff options
| author | Factiven <[email protected]> | 2023-06-18 00:56:47 +0700 |
|---|---|---|
| committer | Factiven <[email protected]> | 2023-06-18 00:56:47 +0700 |
| commit | 62a3826876e6c37002882c1b5712b3771f805907 (patch) | |
| tree | 233f8dd13f33220502476690702d06aac4b56057 /pages | |
| parent | Fixed Error: Missing "key" prop for element in iterator (diff) | |
| download | moopa-62a3826876e6c37002882c1b5712b3771f805907.tar.xz moopa-62a3826876e6c37002882c1b5712b3771f805907.zip | |
Performance update
Diffstat (limited to 'pages')
| -rw-r--r-- | pages/anime/[...id].js | 43 | ||||
| -rw-r--r-- | pages/anime/watch/[...info].js | 17 |
2 files changed, 37 insertions, 23 deletions
diff --git a/pages/anime/[...id].js b/pages/anime/[...id].js index 2d68bd4..eb6909d 100644 --- a/pages/anime/[...id].js +++ b/pages/anime/[...id].js @@ -31,7 +31,7 @@ import { GET_MEDIA_INFO } from "../../queries"; // import { aniInfo } from "../../components/devComp/data"; // console.log(GET_MEDIA_USER); -export default function Info({ info, color }) { +export default function Info({ info, color, api }) { // Episodes dropdown const [firstEpisodeIndex, setFirstEpisodeIndex] = useState(0); const [lastEpisodeIndex, setLastEpisodeIndex] = useState(); @@ -70,6 +70,8 @@ export default function Info({ info, color }) { const [provider, setProvider] = useState(); const [prvValue, setPrvValue] = useState("gogoanime"); + + const [availableProviders, setAvailableProviders] = useState([]); // const [err, setErr] = useState(''); function handleProvider(e) { @@ -119,15 +121,9 @@ export default function Info({ info, color }) { try { const fetchPromises = [ - fetch( - `https://api.moopa.my.id/meta/anilist/info/${info.id}?provider=enime` - ), - fetch( - `https://api.moopa.my.id/meta/anilist/info/${info.id}?provider=zoro` - ), - fetch( - `https://api.moopa.my.id/meta/anilist/info/${info.id}?provider=gogoanime` - ), + fetch(`${api}/meta/anilist/info/${info.id}?provider=enime`), + fetch(`${api}/meta/anilist/info/${info.id}?provider=zoro`), + fetch(`${api}/meta/anilist/info/${info.id}?provider=gogoanime`), ]; const results = await Promise.allSettled(fetchPromises); @@ -158,6 +154,17 @@ export default function Info({ info, color }) { gogoanime: gogoanime?.episodes || gogoanime, }; + const aPrv = [ + { name: "enime", available: enime?.episodes ? true : false }, + { name: "zoro", available: zoro?.episodes ? true : false }, + { + name: "gogoanime", + available: gogoanime?.episodes ? true : false, + }, + ]; + + setAvailableProviders(aPrv); + const infProv = { enime: enime, zoro: zoro, @@ -260,7 +267,7 @@ export default function Info({ info, color }) { fetchData(); }, [id, info, session?.user?.name]); - // console.log(); + console.log(availableProviders); function handleOpen() { setOpen(true); @@ -678,9 +685,15 @@ export default function Info({ info, color }) { value={prvValue} className="flex items-center text-sm gap-5 rounded-[3px] bg-secondary py-1 px-3 pr-8 font-karla appearance-none cursor-pointer outline-none focus:ring-1 focus:ring-action" > - <option value="gogoanime">Gogoanime</option> - <option value="zoro">Zoro</option> - <option value="enime">Enime</option> + {availableProviders + ?.filter((p) => p.available === true) + .map((p) => { + return ( + <option key={p.name} value={p.name}> + {p.name} + </option> + ); + })} </select> <ChevronDownIcon className="absolute right-2 top-1/2 transform -translate-y-1/2 w-5 h-5 pointer-events-none" /> </div> @@ -1044,6 +1057,7 @@ export default function Info({ info, color }) { export async function getServerSideProps(context) { const { id } = context.query; + const API_URI = process.env.API_URI; const res = await fetch("https://graphql.anilist.co/", { method: "POST", @@ -1078,6 +1092,7 @@ export async function getServerSideProps(context) { props: { info: data, color: color, + api: API_URI, }, }; } diff --git a/pages/anime/watch/[...info].js b/pages/anime/watch/[...info].js index a6ae025..d47071e 100644 --- a/pages/anime/watch/[...info].js +++ b/pages/anime/watch/[...info].js @@ -22,7 +22,7 @@ const VideoPlayer = dynamic(() => import("../../../components/videoPlayer", { ssr: false }) ); -export default function Info({ sessions, id, aniId, provider, proxy }) { +export default function Info({ sessions, id, aniId, provider, proxy, api }) { const [epiData, setEpiData] = useState(null); const [data, setAniData] = useState(null); const [skip, setSkip] = useState({ op: null, ed: null }); @@ -73,14 +73,12 @@ export default function Info({ sessions, id, aniId, provider, proxy }) { try { if (provider) { const res = await fetch( - `https://api.moopa.my.id/meta/anilist/watch/${id}?provider=${provider}` + `${api}/meta/anilist/watch/${id}?provider=${provider}` ); const epiData = await res.json(); setEpiData(epiData); } else { - const res = await fetch( - `https://api.moopa.my.id/meta/anilist/watch/${id}` - ); + const res = await fetch(`${api}/meta/anilist/watch/${id}`); const epiData = await res.json(); setEpiData(epiData); } @@ -95,15 +93,13 @@ export default function Info({ sessions, id, aniId, provider, proxy }) { if (provider) { const res = await fetch( - `https://api.moopa.my.id/meta/anilist/info/${aniId}?provider=${provider}` + `${api}/meta/anilist/info/${aniId}?provider=${provider}` ); aniData = await res.json(); setEpisodes(aniData.episodes?.reverse()); setAniData(aniData); } else { - const res2 = await fetch( - `https://api.moopa.my.id/meta/anilist/info/${aniId}` - ); + const res2 = await fetch(`${api}/meta/anilist/info/${aniId}`); aniData = await res2.json(); setEpisodes(aniData.episodes?.reverse()); setAniData(aniData); @@ -561,6 +557,8 @@ export default function Info({ sessions, id, aniId, provider, proxy }) { export async function getServerSideProps(context) { dotenv.config(); + const API_URI = process.env.API_URI; + const session = await getServerSession(context.req, context.res, authOptions); const proxy = process.env.PROXY_URI; @@ -583,6 +581,7 @@ export async function getServerSideProps(context) { aniId, provider, proxy, + api: API_URI, }, }; } |