diff options
| author | Factiven <[email protected]> | 2023-09-26 23:35:35 +0700 |
|---|---|---|
| committer | Factiven <[email protected]> | 2023-09-26 23:35:35 +0700 |
| commit | 20b8a7267827e3a07c1eef668c3b9c22fda43765 (patch) | |
| tree | 2fec9006dfac5737d8b227bf5ccce73880800cc2 /components/anime/episode.js | |
| parent | Update release.md (diff) | |
| download | moopa-4.1.2.tar.xz moopa-4.1.2.zip | |
Update v4.1.2v4.1.2
Diffstat (limited to 'components/anime/episode.js')
| -rw-r--r-- | components/anime/episode.js | 30 |
1 files changed, 18 insertions, 12 deletions
diff --git a/components/anime/episode.js b/components/anime/episode.js index 6f96c98..25ed997 100644 --- a/components/anime/episode.js +++ b/components/anime/episode.js @@ -34,12 +34,16 @@ export default function AnimeEpisode({ info.status === "RELEASING" ? "true" : "false" }${isDub ? "&dub=true" : ""}` ).then((res) => res.json()); - const getMap = response.find((i) => i?.map === true); + const getMap = response.find((i) => i?.map === true) || response[0]; let allProvider = response; if (getMap) { allProvider = response.filter((i) => { - if (i?.providerId === "gogoanime" && i?.map !== true) { + if ( + i?.providerId === "gogoanime" && + i?.providerId === "9anime" && + i?.map !== true + ) { return null; } return i; @@ -122,7 +126,6 @@ export default function AnimeEpisode({ useEffect(() => { if (artStorage) { - // console.log({ artStorage }); const currentData = JSON.parse(localStorage.getItem("artplayer_settings")) || {}; @@ -138,15 +141,18 @@ export default function AnimeEpisode({ } if (!session?.user?.name) { - setProgress( - Object.keys(updatedData).length > 0 - ? Math.max( - ...Object.keys(updatedData).map( - (key) => updatedData[key].episode - ) - ) - : 0 + const maxWatchedEpisode = Object.keys(updatedData).reduce( + (maxEpisode, key) => { + const episodeData = updatedData[key]; + if (episodeData.timeWatched >= episodeData.duration * 0.9) { + return Math.max(maxEpisode, episodeData.episode); + } + return maxEpisode; + }, + 0 ); + + setProgress(maxWatchedEpisode); } else { return; } @@ -177,7 +183,7 @@ export default function AnimeEpisode({ setLoading(false); } else { const data = await res.json(); - const getMap = data.find((i) => i?.map === true); + const getMap = data.find((i) => i?.map === true) || data[0]; let allProvider = data; if (getMap) { |