aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--components/anime/episode.js125
-rw-r--r--components/disqus.js1
-rw-r--r--pages/en/anime/[...id].js34
3 files changed, 93 insertions, 67 deletions
diff --git a/components/anime/episode.js b/components/anime/episode.js
index d68ea54..730ade5 100644
--- a/components/anime/episode.js
+++ b/components/anime/episode.js
@@ -26,22 +26,27 @@ export default function AnimeEpisode({ info, progress }) {
setLoading(true);
setProviders(null);
const fetchData = async () => {
- const res = await fetch(
- `https://ruka.moopa.live/consumet/episode/${info.id}`
- );
- const firstResponse = await res.json();
- if (firstResponse.data.length > 0) {
- const defaultProvider = firstResponse.data?.find(
- (x) => x.providerId === "gogoanime"
+ try {
+ const res = await fetch(
+ `https://ruka.moopa.live/consumet/episode/${info.id}`
);
- setProviderId(
- defaultProvider?.providerId || firstResponse.data[0].providerId
- ); // set to first provider id
- }
+ const firstResponse = await res.json();
+ if (firstResponse.data.length > 0) {
+ const defaultProvider = firstResponse.data?.find(
+ (x) => x.providerId === "gogoanime"
+ );
+ setProviderId(
+ defaultProvider?.providerId || firstResponse.data[0].providerId
+ ); // set to first provider id
+ }
- setArtStorage(JSON.parse(localStorage.getItem("artplayer_settings")));
- setProviders(firstResponse.data);
- setLoading(false);
+ setArtStorage(JSON.parse(localStorage.getItem("artplayer_settings")));
+ setProviders(firstResponse.data);
+ setLoading(false);
+ } catch (error) {
+ setLoading(false);
+ setProviders([]);
+ }
};
fetchData();
}, [info.id]);
@@ -121,7 +126,7 @@ export default function AnimeEpisode({ info, progress }) {
visible ? "" : "hidden"
}`}
>
- {providers && (
+ {providers && providers.length > 0 && (
<div className="flex gap-5">
<div className="relative flex gap-2 items-center">
<select
@@ -178,45 +183,57 @@ export default function AnimeEpisode({ info, progress }) {
: `flex flex-col gap-3`
}
>
- {currentEpisodes.map((episode, index) => {
- return (
- <Fragment key={index}>
- {view === 1 && (
- <ThumbnailOnly
- key={index}
- index={index}
- info={info}
- providerId={providerId}
- episode={episode}
- artStorage={artStorage}
- progress={progress}
- // image={thumbnail}
- />
- )}
- {view === 2 && (
- <ThumbnailDetail
- key={index}
- index={index}
- epi={episode}
- provider={providerId}
- info={info}
- artStorage={artStorage}
- progress={progress}
- />
- )}
- {view === 3 && (
- <ListMode
- key={index}
- info={info}
- episode={episode}
- index={index}
- providerId={providerId}
- progress={progress}
- />
- )}
- </Fragment>
- );
- })}
+ {Array.isArray(providers) ? (
+ providers.length > 0 ? (
+ currentEpisodes.map((episode, index) => {
+ return (
+ <Fragment key={index}>
+ {view === 1 && (
+ <ThumbnailOnly
+ key={index}
+ index={index}
+ info={info}
+ providerId={providerId}
+ episode={episode}
+ artStorage={artStorage}
+ progress={progress}
+ // image={thumbnail}
+ />
+ )}
+ {view === 2 && (
+ <ThumbnailDetail
+ key={index}
+ index={index}
+ epi={episode}
+ provider={providerId}
+ info={info}
+ artStorage={artStorage}
+ progress={progress}
+ />
+ )}
+ {view === 3 && (
+ <ListMode
+ key={index}
+ info={info}
+ episode={episode}
+ index={index}
+ providerId={providerId}
+ progress={progress}
+ />
+ )}
+ </Fragment>
+ );
+ })
+ ) : (
+ <div className="h-[20vh] lg:w-full flex-center flex-col gap-5">
+ <p className="text-center font-karla font-bold lg:text-lg">
+ Oops!<br></br> It looks like this anime is not available.
+ </p>
+ </div>
+ )
+ ) : (
+ <p>{providers.message}</p>
+ )}
</div>
) : (
<div className="flex justify-center">
diff --git a/components/disqus.js b/components/disqus.js
index ee15b98..724bec3 100644
--- a/components/disqus.js
+++ b/components/disqus.js
@@ -1,5 +1,4 @@
import { DiscussionEmbed } from "disqus-react";
-require("dotenv").config();
const DisqusComments = ({ post }) => {
const disqusShortname = post.name || "your_disqus_shortname";
diff --git a/pages/en/anime/[...id].js b/pages/en/anime/[...id].js
index 6255e5a..0b83f24 100644
--- a/pages/en/anime/[...id].js
+++ b/pages/en/anime/[...id].js
@@ -163,18 +163,28 @@ export default function Info({ info, color }) {
<div className="bg-image w-screen">
<div className="bg-gradient-to-t from-primary from-10% to-transparent absolute h-[300px] w-screen z-10 inset-0" />
{info ? (
- <Image
- src={
- info?.bannerImage ||
- info?.coverImage?.extraLarge ||
- info?.coverImage.large
- }
- priority={true}
- alt="banner anime"
- height={1000}
- width={1000}
- className="object-cover bg-image w-screen absolute top-0 left-0 h-[300px] brightness-[70%] z-0"
- />
+ <>
+ <Image
+ src={
+ info?.bannerImage ||
+ info?.coverImage?.extraLarge ||
+ info?.coverImage.large
+ }
+ priority={true}
+ alt="banner anime"
+ height={1000}
+ width={1000}
+ className="hidden md:block object-cover bg-image w-screen absolute top-0 left-0 h-[300px] brightness-[70%] z-0"
+ />
+ <Image
+ src={info?.coverImage.extraLarge || info?.coverImage.large}
+ priority={true}
+ alt="banner anime"
+ height={1000}
+ width={1000}
+ className="md:hidden object-cover bg-image w-screen absolute top-0 left-0 h-[300px] brightness-[70%] z-0"
+ />
+ </>
) : (
<div className="bg-image w-screen absolute top-0 left-0 h-[300px]" />
)}