From 493e3f4568d0eb33312b160dcbb9cf412999824b Mon Sep 17 00:00:00 2001 From: real-zephex Date: Wed, 12 Jun 2024 15:37:30 +0530 Subject: switched manga downloaded api to render --- src/app/anime/components/episode_buttons.jsx | 205 --------------------------- 1 file changed, 205 deletions(-) delete mode 100644 src/app/anime/components/episode_buttons.jsx (limited to 'src/app/anime/components/episode_buttons.jsx') diff --git a/src/app/anime/components/episode_buttons.jsx b/src/app/anime/components/episode_buttons.jsx deleted file mode 100644 index 71f338f..0000000 --- a/src/app/anime/components/episode_buttons.jsx +++ /dev/null @@ -1,205 +0,0 @@ -"use client"; -import { useState, useEffect } from "react"; -import { MediaPlayer, MediaProvider } from "@vidstack/react"; -import "@vidstack/react/player/styles/default/theme.css"; -import "@vidstack/react/player/styles/default/layouts/video.css"; -import { - defaultLayoutIcons, - DefaultVideoLayout, -} from "@vidstack/react/player/layouts/default"; - -import styles from "../styles/buttons.module.css"; -import { video_url } from "../data-fetch/request"; -import { preFetchVideoLinks } from "./cacher"; -import { storeLocal } from "./storeHistory"; - -const EpisodesButtons = ({ data: data }) => { - const [videoLink, setVideoLink] = useState(null); - const [buttonGroups, setButtonGroups] = useState(null); - const [videoLoading, setVideoLoading] = useState(null); - - useEffect(() => { - setButtonGroups(createButtonGroups(0, 50)); - }, []); - - const groups = createGroups(data.episodes, 50); - - /** - * Retrieves the video URL for a given episode ID. - * This function handles the initializing, changing URL, and hiding the video player. - * @param {string} epID - The episode ID. - */ - async function getVideoURL(epID) { - setVideoLoading(true); - const data = await video_url(epID); - setVideoLink(data.sources[data.sources.length - 2].url); - setVideoLoading(false); - } - - /** - * Creates button groups for a range of episodes. - * @param {number} start - The starting index of episodes. - * @param {number} end - The ending index of episodes. - * @returns {JSX.Element} - Button groups JSX element. - */ - function createButtonGroups(start, end) { - try { - const buttons = document.getElementsByClassName("episode-button"); - for (let i = 0; i < buttons.length; i++) { - buttons[i].style.backgroundColor = "#1f1f1fd2"; - } - } catch (error) { - console.error( - "ERROR: This error is expected. This is done in order to reset the background color of the buttons. I can't think of a better way than this....so yeah.", - error.message - ); - } - - return ( -
- {data.episodes && - data.episodes.slice(start, end).map((item, index) => ( - - ))} -
- ); - } - - /** - * Handles the change event of the select element. - * @param {Event} event - The change event object. - */ - function handleSelectChange(event) { - const selectedIndex = event.target.selectedIndex; - const selectedGroup = groups[selectedIndex]; - if (selectedGroup) { - setButtonGroups( - createButtonGroups( - selectedGroup[0].number - 1, - selectedGroup[selectedGroup.length - 1].number - ) - ); - preFetchVideoLinks( - data.episodes.slice( - selectedGroup[0].number - 1, - selectedGroup[selectedGroup.length - 1].number - ) - ); - } - } - - return ( -
- {data.episodes && ( - - )} - {buttonGroups} - {videoLoading && ( -

Loading...

- )} - {videoLink && ( - - )} -
- ); -}; - -/** - * Divides an array into groups of a specified size. - * @param {Array} array - The array to be divided. - * @param {number} size - The size of each group. - * @returns {Array} - An array containing groups of elements. - */ -function createGroups(array, size) { - const groups = []; - for (let i = 0; i < array.length; i += size) { - groups.push(array.slice(i, i + size)); - } - return groups; -} - -/** - * Stores watch history to local storage. - * @param {string} name - The name of the episode. - * @param {string} image - The image URL of the episode. - * @param {number} episode - The episode number. - * @param {string} id - The ID of the episode. - */ -function store_to_local(name, image, episode, id) { - const currentDate = new Date(); - - try { - let newData = { - name: name, - image: image, - episode: episode, - id: id, - type: "anime", - date: `${currentDate.getDate()}-${String( - currentDate.getMonth() + 1 - ).padStart(2, "0")}`, - time: `${currentDate.getHours()}:${String( - currentDate.getMinutes() - ).padStart(2, "0")}`, - }; - storeLocal(newData); - } catch (error) { - console.error( - "Some error occurred during the process of saving your watch history to local storage. Please try again or contact us on GitHub if this issue persists.", - error.message - ); - } -} - -export default EpisodesButtons; -- cgit v1.2.3