aboutsummaryrefslogtreecommitdiff
path: root/components
diff options
context:
space:
mode:
authorFactiven <[email protected]>2023-10-28 22:50:51 +0700
committerFactiven <[email protected]>2023-10-28 22:50:51 +0700
commita25282429761ff0670a50fd74f8c24bdb38e728c (patch)
tree0cd14840e665f1912842967de7427a31556190e6 /components
parentUpdate v4.2.3 (diff)
downloadmoopa-a25282429761ff0670a50fd74f8c24bdb38e728c.tar.xz
moopa-a25282429761ff0670a50fd74f8c24bdb38e728c.zip
Update v4.2.4
Diffstat (limited to 'components')
-rw-r--r--components/admin/dashboard/index.js3
-rw-r--r--components/admin/layout.js1
-rw-r--r--components/anime/episode.js72
-rw-r--r--components/home/content.js3
-rw-r--r--components/listEditor.js1
-rw-r--r--components/search/searchByImage.js2
-rw-r--r--components/searchPalette.js3
-rw-r--r--components/shared/NavBar.js1
8 files changed, 62 insertions, 24 deletions
diff --git a/components/admin/dashboard/index.js b/components/admin/dashboard/index.js
index d0c9963..930b8e0 100644
--- a/components/admin/dashboard/index.js
+++ b/components/admin/dashboard/index.js
@@ -168,12 +168,14 @@ export default function AdminDashboard({
</div>
<div className="flex font-karla font-semibold gap-2">
<button
+ title="Broadcast"
type="submit"
className="bg-image text-white py-2 px-4 rounded-md hover:bg-opacity-80 transition duration-300"
>
Broadcast
</button>
<button
+ title="Remove"
type="button"
onClick={handleRemove}
className="bg-red-700 text-white py-2 px-4 rounded-md hover:bg-opacity-80 transition duration-300"
@@ -247,6 +249,7 @@ export default function AdminDashboard({
)}
<button
type="button"
+ title="Resolved"
onClick={() => {
setReportId(i?.id);
handleResolved();
diff --git a/components/admin/layout.js b/components/admin/layout.js
index 3209dcf..85a5fe7 100644
--- a/components/admin/layout.js
+++ b/components/admin/layout.js
@@ -49,6 +49,7 @@ export default function AdminLayout({ children, page, setPage }) {
<div className="flex flex-col px-1">
{Navigation.map((item, index) => (
<button
+ title="Dashboard"
key={item.name}
onClick={() => {
setPage(item.page);
diff --git a/components/anime/episode.js b/components/anime/episode.js
index a42307f..3650944 100644
--- a/components/anime/episode.js
+++ b/components/anime/episode.js
@@ -6,6 +6,30 @@ import ThumbnailDetail from "./viewMode/thumbnailDetail";
import ListMode from "./viewMode/listMode";
import { toast } from "sonner";
+function allProvider(response, setMapProviders, setProviderId) {
+ const getMap = response.find((i) => i?.map === true);
+ let allProvider = response;
+
+ if (getMap) {
+ allProvider = response.filter((i) => {
+ if (i?.providerId === "gogoanime" && i?.map !== true) {
+ return null;
+ }
+ return i;
+ });
+ setMapProviders(getMap?.episodes);
+ }
+
+ if (allProvider.length > 0) {
+ const defaultProvider = allProvider.find(
+ (x) => x.providerId === "gogoanime" || x.providerId === "9anime"
+ );
+ setProviderId(defaultProvider?.providerId || allProvider[0].providerId); // set to first provider id
+ }
+
+ return allProvider;
+}
+
export default function AnimeEpisode({
info,
session,
@@ -34,29 +58,12 @@ export default function AnimeEpisode({
info.status === "RELEASING" ? "true" : "false"
}${isDub ? "&dub=true" : ""}`
).then((res) => res.json());
- const getMap = response.find((i) => i?.map === true);
- let allProvider = response;
- if (getMap) {
- allProvider = response.filter((i) => {
- if (i?.providerId === "gogoanime" && i?.map !== true) {
- return null;
- }
- return i;
- });
- setMapProviders(getMap?.episodes);
- }
-
- if (allProvider.length > 0) {
- const defaultProvider = allProvider.find(
- (x) => x.providerId === "gogoanime" || x.providerId === "9anime"
- );
- setProviderId(defaultProvider?.providerId || allProvider[0].providerId); // set to first provider id
- }
+ const providers = allProvider(response, setMapProviders, setProviderId);
setView(Number(localStorage.getItem("view")) || 3);
setArtStorage(JSON.parse(localStorage.getItem("artplayer_settings")));
- setProviders(allProvider);
+ setProviders(providers);
setLoading(false);
};
fetchData();
@@ -172,11 +179,32 @@ export default function AnimeEpisode({
}${isDub ? "&dub=true" : ""}&refresh=true`
);
if (!res.ok) {
- console.log(res);
- toast.error("Something went wrong");
- setProviders([]);
+ const json = await res.json();
+ if (res.status === 429) {
+ toast.error(json.error);
+ const resp = await fetch(
+ `/api/v2/episode/${info.id}?releasing=${
+ info.status === "RELEASING" ? "true" : "false"
+ }${isDub ? "&dub=true" : ""}`
+ ).then((res) => res.json());
+
+ if (resp) {
+ const providers = allProvider(
+ resp,
+ setMapProviders,
+ setProviderId
+ );
+ setProviders(providers);
+ }
+ } else {
+ toast.error("Something went wrong");
+ setProviders([]);
+ }
setLoading(false);
} else {
+ const remainingRequests = res.headers.get("X-RateLimit-Remaining");
+ toast.success("Remaining requests " + remainingRequests);
+
const data = await res.json();
const getMap = data.find((i) => i?.map === true) || data[0];
let allProvider = data;
diff --git a/components/home/content.js b/components/home/content.js
index a380e1f..1cf4c5f 100644
--- a/components/home/content.js
+++ b/components/home/content.js
@@ -13,6 +13,7 @@ import { ExclamationCircleIcon, PlayIcon } from "@heroicons/react/24/solid";
import { useRouter } from "next/router";
import HistoryOptions from "./content/historyOptions";
import { toast } from "sonner";
+import { truncateImgUrl } from "@/utils/imageUtils";
export default function Content({
ids,
@@ -287,7 +288,7 @@ export default function Content({
anime.image ||
anime.coverImage?.extraLarge ||
anime.coverImage?.large ||
- anime?.coverImage ||
+ truncateImgUrl(anime?.coverImage) ||
"https://cdn.discordapp.com/attachments/986579286397964290/1058415946945003611/gray_pfp.png"
}
alt={
diff --git a/components/listEditor.js b/components/listEditor.js
index f4f46ea..7d30835 100644
--- a/components/listEditor.js
+++ b/components/listEditor.js
@@ -145,6 +145,7 @@ const ListEditor = ({
</div>
<button
type="submit"
+ title="Save"
className="bg-[#363642] text-white rounded-sm mt-2 py-1 text-sm sm:text-base"
>
Save
diff --git a/components/search/searchByImage.js b/components/search/searchByImage.js
index f95c2ad..f61418f 100644
--- a/components/search/searchByImage.js
+++ b/components/search/searchByImage.js
@@ -65,7 +65,7 @@ export default function SearchByImage({
useEffect(() => {
// Add a global event listener for the paste event
const handlePaste = async (e) => {
- e.preventDefault();
+ // e.preventDefault();
const items = e.clipboardData.items;
diff --git a/components/searchPalette.js b/components/searchPalette.js
index 10b9003..b450423 100644
--- a/components/searchPalette.js
+++ b/components/searchPalette.js
@@ -149,6 +149,7 @@ export default function SearchPalette() {
<Menu.Item>
{({ active }) => (
<button
+ title="Anime"
onClick={() => setType("ANIME")}
className={`${
active
@@ -164,6 +165,7 @@ export default function SearchPalette() {
<Menu.Item>
{({ active }) => (
<button
+ title="Manga"
onClick={() => setType("MANGA")}
className={`${
active
@@ -239,6 +241,7 @@ export default function SearchPalette() {
{nextPage && (
<button
type="button"
+ title="View More"
onClick={() => {
router.push(
`/en/search/${type.toLowerCase()}/${
diff --git a/components/shared/NavBar.js b/components/shared/NavBar.js
index 034a06b..8cfdfc1 100644
--- a/components/shared/NavBar.js
+++ b/components/shared/NavBar.js
@@ -173,6 +173,7 @@ export function NewNavbar({
<div className="flex w-[20%] justify-end items-center gap-4">
<button
type="button"
+ title="Search"
onClick={() => setIsOpen(true)}
className="flex-center w-[26px] h-[26px]"
>