mirror of
https://github.com/JustAnimeCore/JustAnime.git
synced 2026-04-17 13:51:44 +00:00
36
README.md
36
README.md
@@ -1,28 +1,34 @@
|
||||
<p align="center">
|
||||
<div align="center">
|
||||
<a href="https://justanime.to">
|
||||
<img alt="JustAnime" src="https://github.com/tejaspanchall/JustAnime/blob/main/public/footer.png" width="220"/>
|
||||
<img alt="JustAnime" src="https://github.com/JustAnimeCore/JustAnime/blob/main/public/footer.png" width="220"/>
|
||||
</a>
|
||||
</div>
|
||||
<h3 align="center">JustAnime - Clean anime streaming platform</h3>
|
||||
<p align="center">
|
||||
<a href="https://github.com/tejaspanchall/JustAnime">
|
||||
<img src="https://img.shields.io/github/stars/tejaspanchall/JustAnime" alt="Github Stars">
|
||||
<a href="https://github.com/JustAnimeCore/JustAnime">
|
||||
<img src="https://img.shields.io/github/stars/JustAnimeCore/JustAnime" alt="Github Stars">
|
||||
</a>
|
||||
<img src="https://img.shields.io/github/issues/tejaspanchall/JustAnime" alt="Github Issues">
|
||||
<a href="https://github.com/tejaspanchall/JustAnime">
|
||||
<img src="https://img.shields.io/github/forks/tejaspanchall/JustAnime" alt="Github Forks" />
|
||||
<img src="https://img.shields.io/github/issues/JustAnimeCore/JustAnime" alt="Github Issues">
|
||||
<a href="https://github.com/JustAnimeCore/JustAnime">
|
||||
<img src="https://img.shields.io/github/forks/JustAnimeCore/JustAnime" alt="Github Forks" />
|
||||
</a>
|
||||
</p>
|
||||
</p>
|
||||
<p align="center">
|
||||
<a href="https://justanime.to">JustAnime</a> is an open-source anime streaming service that uses <a href="https://github.com/itzzzme/anime-api">ANIME</a> API, built using ReactJS with javascript and Tailwind CSS. It lets you easily find any anime with intuitive search & suggestion feature and stream without any ads.
|
||||
<a href="https://justanime.to">JustAnime</a> is an open-source anime streaming service that uses <a href="https://github.com/JustAnimeCore/HiAnime-Api">HiAnime-Api</a>, built using ReactJS with javascript and Tailwind CSS. It lets you easily find any anime with intuitive search & suggestion feature and stream without any ads.
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
<a href="https://discord.gg/P3yqksmGun">
|
||||
<img src="https://img.shields.io/badge/Join%20our%20Discord-5865F2?logo=discord&logoColor=white" alt="Join our Discord">
|
||||
</a>
|
||||
<a href="https://t.me/JustAnimeZone">
|
||||
<img src="https://img.shields.io/badge/Join%20our%20Telegram-26A5E4?logo=telegram&logoColor=white" alt="Join our Telegram">
|
||||
</a>
|
||||
<a href="https://www.instagram.com/watchjustanime">
|
||||
<img src="https://img.shields.io/badge/Follow%20on%20Instagram-E4405F?logo=instagram&logoColor=white" alt="Follow on Instagram">
|
||||
</a>
|
||||
</p>
|
||||
|
||||
<details>
|
||||
@@ -53,18 +59,18 @@
|
||||
## Previews
|
||||
|
||||
<div style="text-align: left;">
|
||||
<img src="https://github.com/tejaspanchall/JustAnime/blob/main/public/home.PNG" alt="Home Page" style="max-width: 80%;" >
|
||||
<img src="https://github.com/JustAnimeCore/JustAnime/blob/main/public/home.PNG" alt="Home Page" style="max-width: 80%;" >
|
||||
<details>
|
||||
<summary style="margin-top:10px">View more screenshots</summary>
|
||||
<br/>
|
||||
AnimeInfo Page
|
||||
<img src="https://github.com/tejaspanchall/JustAnime/blob/main/public/info.PNG" style="margin-top:10px" src="" alt="AnimeInfo Page" style="max-width: 80%;">
|
||||
<img src="https://github.com/JustAnimeCore/JustAnime/blob/main/public/info.PNG" style="margin-top:10px" src="" alt="AnimeInfo Page" style="max-width: 80%;">
|
||||
<br/>
|
||||
Character & Voice Actors
|
||||
<img src="https://github.com/tejaspanchall/JustAnime/blob/main/public/char.PNG" style="margin-top:10px" src="" alt="Character & Voice Actors" style="max-width: 80%;">
|
||||
<img src="https://github.com/JustAnimeCore/JustAnime/blob/main/public/char.PNG" style="margin-top:10px" src="" alt="Character & Voice Actors" style="max-width: 80%;">
|
||||
<br/>
|
||||
Watch Page
|
||||
<img src="https://github.com/tejaspanchall/JustAnime/blob/main/public/watch.PNG" style="margin-top:10px" src="" alt="Watch Page" style="max-width: 80%;">
|
||||
<img src="https://github.com/JustAnimeCore/JustAnime/blob/main/public/watch.PNG" style="margin-top:10px" src="" alt="Watch Page" style="max-width: 80%;">
|
||||
<br/>
|
||||
</details>
|
||||
</div>
|
||||
@@ -76,12 +82,12 @@
|
||||
### 2. Run the following code to clone the repository and install all required dependencies
|
||||
|
||||
```bash
|
||||
git clone https://github.com/tejaspanchall/JustAnime.git
|
||||
git clone https://github.com/JustAnimeCore/JustAnime.git
|
||||
cd JustAnime
|
||||
npm install # or yarn
|
||||
```
|
||||
|
||||
### 3. Refer the <a href="https://github.com/tejaspanchall/JustAnime/blob/main/.env.example">.env.example</a> to set your .env file up
|
||||
### 3. Refer the <a href="https://github.com/JustAnimeCore/JustAnime/blob/main/.env.example">.env.example</a> to set your .env file up
|
||||
|
||||
## Start the server
|
||||
|
||||
@@ -94,13 +100,13 @@ npm start # or npm run dev (to run develepment server)
|
||||
|
||||
Host your own instance of <a href="https://justanime.fun">JustAnime</a> on vercel
|
||||
|
||||
[](https://vercel.com/new/clone?repository-url=https://github.com/tejaspanchall/JustAnime)
|
||||
[](https://vercel.com/new/clone?repository-url=https://github.com/JustAnimeCore/JustAnime)
|
||||
|
||||
### Render
|
||||
|
||||
Host your own instance of <a href="https://justanime.fun">JustAnime</a> on Render.
|
||||
|
||||
[](https://render.com/deploy?repo=https://github.com/tejaspanchall/JustAnime)
|
||||
[](https://render.com/deploy?repo=https://github.com/JustAnimeCore/JustAnime)
|
||||
|
||||
## Pull Requests
|
||||
|
||||
|
||||
208
public/sitemap-genre.xml
Normal file
208
public/sitemap-genre.xml
Normal file
@@ -0,0 +1,208 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:news="http://www.google.com/schemas/sitemap-news/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xmlns:video="http://www.google.com/schemas/sitemap-video/1.1">
|
||||
<url>
|
||||
<loc>https://justanime.fun/genre/action</loc>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.8</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://justanime.fun/genre/adventure</loc>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.8</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://justanime.fun/genre/cars</loc>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.8</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://justanime.fun/genre/comedy</loc>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.8</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://justanime.fun/genre/dementia</loc>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.8</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://justanime.fun/genre/demons</loc>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.8</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://justanime.fun/genre/drama</loc>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.8</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://justanime.fun/genre/ecchi</loc>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.8</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://justanime.fun/genre/fantasy</loc>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.8</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://justanime.fun/genre/game</loc>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.8</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://justanime.fun/genre/harem</loc>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.8</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://justanime.fun/genre/historical</loc>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.8</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://justanime.fun/genre/horror</loc>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.8</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://justanime.fun/genre/isekai</loc>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.8</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://justanime.fun/genre/josei</loc>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.8</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://justanime.fun/genre/kids</loc>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.8</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://justanime.fun/genre/magic</loc>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.8</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://justanime.fun/genre/marial-arts</loc>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.8</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://justanime.fun/genre/mecha</loc>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.8</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://justanime.fun/genre/military</loc>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.8</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://justanime.fun/genre/music</loc>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.8</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://justanime.fun/genre/mystery</loc>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.8</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://justanime.fun/genre/parody</loc>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.8</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://justanime.fun/genre/police</loc>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.8</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://justanime.fun/genre/psychological</loc>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.8</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://justanime.fun/genre/romance</loc>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.8</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://justanime.fun/genre/samurai</loc>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.8</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://justanime.fun/genre/school</loc>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.8</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://justanime.fun/genre/sci-fi</loc>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.8</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://justanime.fun/genre/seinen</loc>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.8</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://justanime.fun/genre/shoujo</loc>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.8</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://justanime.fun/genre/shoujo-ai</loc>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.8</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://justanime.fun/genre/shounen</loc>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.8</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://justanime.fun/genre/shounen-ai</loc>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.8</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://justanime.fun/genre/slice-of-life</loc>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.8</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://justanime.fun/genre/space</loc>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.8</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://justanime.fun/genre/sports</loc>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.8</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://justanime.fun/genre/super-power</loc>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.8</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://justanime.fun/genre/supernatural</loc>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.8</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://justanime.fun/genre/thriller</loc>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.8</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://justanime.fun/genre/vampire</loc>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.8</priority>
|
||||
</url>
|
||||
</urlset>
|
||||
5003
public/sitemap-movie-1.xml
Normal file
5003
public/sitemap-movie-1.xml
Normal file
File diff suppressed because it is too large
Load Diff
5003
public/sitemap-movie-10.xml
Normal file
5003
public/sitemap-movie-10.xml
Normal file
File diff suppressed because it is too large
Load Diff
5003
public/sitemap-movie-11.xml
Normal file
5003
public/sitemap-movie-11.xml
Normal file
File diff suppressed because it is too large
Load Diff
5003
public/sitemap-movie-12.xml
Normal file
5003
public/sitemap-movie-12.xml
Normal file
File diff suppressed because it is too large
Load Diff
5003
public/sitemap-movie-13.xml
Normal file
5003
public/sitemap-movie-13.xml
Normal file
File diff suppressed because it is too large
Load Diff
5003
public/sitemap-movie-14.xml
Normal file
5003
public/sitemap-movie-14.xml
Normal file
File diff suppressed because it is too large
Load Diff
5003
public/sitemap-movie-15.xml
Normal file
5003
public/sitemap-movie-15.xml
Normal file
File diff suppressed because it is too large
Load Diff
5003
public/sitemap-movie-16.xml
Normal file
5003
public/sitemap-movie-16.xml
Normal file
File diff suppressed because it is too large
Load Diff
5003
public/sitemap-movie-17.xml
Normal file
5003
public/sitemap-movie-17.xml
Normal file
File diff suppressed because it is too large
Load Diff
5003
public/sitemap-movie-18.xml
Normal file
5003
public/sitemap-movie-18.xml
Normal file
File diff suppressed because it is too large
Load Diff
5003
public/sitemap-movie-19.xml
Normal file
5003
public/sitemap-movie-19.xml
Normal file
File diff suppressed because it is too large
Load Diff
5003
public/sitemap-movie-2.xml
Normal file
5003
public/sitemap-movie-2.xml
Normal file
File diff suppressed because it is too large
Load Diff
4033
public/sitemap-movie-20.xml
Normal file
4033
public/sitemap-movie-20.xml
Normal file
File diff suppressed because it is too large
Load Diff
5003
public/sitemap-movie-3.xml
Normal file
5003
public/sitemap-movie-3.xml
Normal file
File diff suppressed because it is too large
Load Diff
5003
public/sitemap-movie-4.xml
Normal file
5003
public/sitemap-movie-4.xml
Normal file
File diff suppressed because it is too large
Load Diff
5003
public/sitemap-movie-5.xml
Normal file
5003
public/sitemap-movie-5.xml
Normal file
File diff suppressed because it is too large
Load Diff
5003
public/sitemap-movie-6.xml
Normal file
5003
public/sitemap-movie-6.xml
Normal file
File diff suppressed because it is too large
Load Diff
5003
public/sitemap-movie-7.xml
Normal file
5003
public/sitemap-movie-7.xml
Normal file
File diff suppressed because it is too large
Load Diff
5003
public/sitemap-movie-8.xml
Normal file
5003
public/sitemap-movie-8.xml
Normal file
File diff suppressed because it is too large
Load Diff
5003
public/sitemap-movie-9.xml
Normal file
5003
public/sitemap-movie-9.xml
Normal file
File diff suppressed because it is too large
Load Diff
73
public/sitemap-page.xml
Normal file
73
public/sitemap-page.xml
Normal file
@@ -0,0 +1,73 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:news="http://www.google.com/schemas/sitemap-news/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xmlns:video="http://www.google.com/schemas/sitemap-video/1.1">
|
||||
<url>
|
||||
<loc>https://justanime.fun/</loc>
|
||||
<changefreq>daily</changefreq>
|
||||
<priority>1.0</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://justanime.fun/home</loc>
|
||||
<changefreq>daily</changefreq>
|
||||
<priority>1.0</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://justanime.fun/dubbed-anime</loc>
|
||||
<changefreq>daily</changefreq>
|
||||
<priority>0.9</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://justanime.fun/subbed-anime</loc>
|
||||
<changefreq>daily</changefreq>
|
||||
<priority>0.9</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://justanime.fun/top-airing</loc>
|
||||
<changefreq>daily</changefreq>
|
||||
<priority>0.9</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://justanime.fun/most-popular</loc>
|
||||
<changefreq>daily</changefreq>
|
||||
<priority>0.9</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://justanime.fun/most-favorite</loc>
|
||||
<changefreq>daily</changefreq>
|
||||
<priority>0.9</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://justanime.fun/recently-updated</loc>
|
||||
<changefreq>daily</changefreq>
|
||||
<priority>0.9</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://justanime.fun/recently-added</loc>
|
||||
<changefreq>daily</changefreq>
|
||||
<priority>0.9</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://justanime.fun/top-upcoming</loc>
|
||||
<changefreq>daily</changefreq>
|
||||
<priority>0.9</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://justanime.fun/az-list</loc>
|
||||
<changefreq>daily</changefreq>
|
||||
<priority>0.9</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://justanime.fun/terms-of-service</loc>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.9</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://justanime.fun/dmca</loc>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.9</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://justanime.fun/contact</loc>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.9</priority>
|
||||
</url>
|
||||
</urlset>
|
||||
28
public/sitemap-type.xml
Normal file
28
public/sitemap-type.xml
Normal file
@@ -0,0 +1,28 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:news="http://www.google.com/schemas/sitemap-news/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xmlns:video="http://www.google.com/schemas/sitemap-video/1.1">
|
||||
<url>
|
||||
<loc>https://justanime.fun/movie</loc>
|
||||
<changefreq>daily</changefreq>
|
||||
<priority>0.8</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://justanime.fun/tv</loc>
|
||||
<changefreq>daily</changefreq>
|
||||
<priority>0.8</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://justanime.fun/ova</loc>
|
||||
<changefreq>daily</changefreq>
|
||||
<priority>0.8</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://justanime.fun/ona</loc>
|
||||
<changefreq>daily</changefreq>
|
||||
<priority>0.8</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://justanime.fun/special</loc>
|
||||
<changefreq>daily</changefreq>
|
||||
<priority>0.8</priority>
|
||||
</url>
|
||||
</urlset>
|
||||
2847
public/sitemap.xml
2847
public/sitemap.xml
File diff suppressed because it is too large
Load Diff
@@ -68,7 +68,7 @@ export default function Player({
|
||||
const artRef = useRef(null);
|
||||
const leftAtRef = useRef(0);
|
||||
const boundKeydownRef = useRef(null);
|
||||
const proxy = import.meta.env.VITE_PROXY_URL;
|
||||
const proxy = import.meta.env.VITE_M3U8_PROXY_URL;
|
||||
const m3u8proxy = import.meta.env.VITE_M3U8_PROXY_URL?.split(",") || [];
|
||||
const [currentEpisodeIndex, setCurrentEpisodeIndex] = useState(
|
||||
episodes?.findIndex((episode) => episode.id.match(/ep=(\d+)/)?.[1] === episodeId)
|
||||
@@ -253,7 +253,7 @@ export default function Player({
|
||||
useEffect(() => {
|
||||
if (!streamUrl || !artRef.current) return;
|
||||
|
||||
const iframeUrl = streamInfo?.streamingLink?.iframe;
|
||||
const iframeUrl = streamInfo?.streamingLink?.[0]?.iframe;
|
||||
const headers = {
|
||||
referer: iframeUrl ? new URL(iframeUrl).origin + "/" : window.location.origin + "/",
|
||||
};
|
||||
@@ -491,12 +491,7 @@ export default function Player({
|
||||
}, 2000);
|
||||
|
||||
const subs = (subtitles || []).map((s) => ({ ...s }));
|
||||
|
||||
for (const sub of subs) {
|
||||
const encodedUrl = encodeURIComponent(sub.file);
|
||||
const encodedHeaders = encodeURIComponent(JSON.stringify(headers));
|
||||
sub.file = `${proxy}${encodedUrl}&headers=${encodedHeaders}`;
|
||||
}
|
||||
// VTT subtitle files from HiAnime CDNs are public, no proxy needed
|
||||
|
||||
const defaultSubtitle = subs?.find((sub) => sub.label.toLowerCase() === "english");
|
||||
if (defaultSubtitle) {
|
||||
@@ -547,7 +542,7 @@ export default function Player({
|
||||
if (thumbnail) {
|
||||
art.plugins.add(
|
||||
artplayerPluginVttThumbnail({
|
||||
vtt: `${proxy}${thumbnail}`,
|
||||
vtt: thumbnail,
|
||||
})
|
||||
);
|
||||
}
|
||||
@@ -595,7 +590,7 @@ export default function Player({
|
||||
...subs.map((sub) => ({
|
||||
default: sub.label.toLowerCase() === "english" && sub === defaultEnglishSub,
|
||||
html: sub.label,
|
||||
url: sub.file,
|
||||
url: sub.file, // direct CDN URL, no proxy needed
|
||||
})),
|
||||
],
|
||||
onSelect: (item) => {
|
||||
|
||||
@@ -229,15 +229,15 @@ export const useWatch = (animeId, initialEpisodeId) => {
|
||||
server.type.toLowerCase()
|
||||
);
|
||||
setStreamInfo(data);
|
||||
setStreamUrl(data?.streamingLink?.link?.file || null);
|
||||
setIntro(data?.streamingLink?.intro || null);
|
||||
setOutro(data?.streamingLink?.outro || null);
|
||||
setStreamUrl(data?.streamingLink?.[0]?.link || null);
|
||||
setIntro(data?.intro || null);
|
||||
setOutro(data?.outro || null);
|
||||
const subtitles =
|
||||
data?.streamingLink?.tracks
|
||||
data?.tracks
|
||||
?.filter((track) => track.kind === "captions")
|
||||
.map(({ file, label }) => ({ file, label })) || [];
|
||||
.map(({ file, label, default: isDefault }) => ({ file, label, default: isDefault })) || [];
|
||||
setSubtitles(subtitles);
|
||||
const thumbnailTrack = data?.streamingLink?.tracks?.find(
|
||||
const thumbnailTrack = data?.tracks?.find(
|
||||
(track) => track.kind === "thumbnails" && track.file
|
||||
);
|
||||
if (thumbnailTrack) setThumbnail(thumbnailTrack.file);
|
||||
|
||||
@@ -32,7 +32,7 @@ function Contact() {
|
||||
<span className="text-white/60 group-hover:text-white">Join Discord Server</span>
|
||||
</a>
|
||||
<a
|
||||
href="https://github.com/tejaspanchall/JustAnime"
|
||||
href="https://github.com/JustAnimeCore/JustAnime"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
className="flex items-center gap-3 px-4 py-3 bg-white/5 hover:bg-white/10 rounded-lg transition-colors group"
|
||||
|
||||
@@ -352,28 +352,6 @@ export default function Watch() {
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{/* Seasons (Mobile only) */}
|
||||
{seasons?.length > 0 && (
|
||||
<div className="hidden max-[1200px]:block w-full bg-[#141414] rounded-xl p-4 shadow-lg border border-white/5">
|
||||
<h2 className="text-lg font-bold mb-4 text-white">More Seasons</h2>
|
||||
<div className="grid grid-cols-2 gap-3">
|
||||
{seasons.map((season, idx) => (
|
||||
<Link
|
||||
to={`/${season.id}`}
|
||||
key={idx}
|
||||
className={`relative aspect-[3/1] rounded-lg overflow-hidden group border-2 transition-all ${animeId === String(season.id) ? "border-white/40 shadow-lg" : "border-transparent"}`}
|
||||
>
|
||||
<img src={season.season_poster} alt={season.season} className={`w-full h-full object-cover scale-150 transition-opacity ${animeId === String(season.id) ? "opacity-60" : "opacity-40 group-hover:opacity-60"}`} />
|
||||
<div className="absolute inset-0 bg-gradient-to-r from-black/80 to-transparent z-10" />
|
||||
<div className="absolute inset-0 flex items-center justify-center z-20 px-2">
|
||||
<p className="text-xs font-bold text-white text-center line-clamp-2">{season.season}</p>
|
||||
</div>
|
||||
</Link>
|
||||
))}
|
||||
</div>
|
||||
</div>
|
||||
)}
|
||||
|
||||
{/* Related Anime (Mobile only) */}
|
||||
{!animeInfoLoading && animeInfo?.related_data?.length > 0 && (
|
||||
<div className="hidden max-[1200px]:block w-full bg-[#141414] rounded-xl p-4 shadow-lg border border-white/5">
|
||||
@@ -406,10 +384,39 @@ export default function Watch() {
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{/* Sections */}
|
||||
<div className="container mx-auto space-y-8 pb-12 lg:px-6">
|
||||
{seasons?.length > 0 && (
|
||||
<div>
|
||||
<h2 className="text-2xl font-bold mb-6 px-1 text-white">More Seasons</h2>
|
||||
<div className="grid grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-4">
|
||||
{seasons.map((season, index) => (
|
||||
<Link
|
||||
to={`/${season.id}`}
|
||||
key={index}
|
||||
className={`relative w-full aspect-[3/1] rounded-lg overflow-hidden group border-2 transition-all ${animeId === String(season.id) ? "border-white/40 shadow-lg" : "border-transparent"}`}
|
||||
>
|
||||
<img src={season.season_poster} alt={season.season} className={`w-full h-full object-cover scale-150 transition-opacity ${animeId === String(season.id) ? "opacity-50" : "opacity-40 group-hover:opacity-60"}`} />
|
||||
<div
|
||||
className="absolute inset-0 z-10"
|
||||
style={{
|
||||
backgroundImage: `url('data:image/svg+xml,<svg width="3" height="3" viewBox="0 0 3 3" fill="none" xmlns="http://www.w3.org/2000/svg"><circle cx="1.5" cy="1.5" r="0.5" fill="white" fill-opacity="0.25"/></svg>')`,
|
||||
backgroundSize: '3px 3px'
|
||||
}}
|
||||
/>
|
||||
<div className="absolute inset-0 z-20 bg-gradient-to-r from-black/60 to-transparent" />
|
||||
<div className="absolute inset-0 z-30 flex items-center justify-center">
|
||||
<p className="text-sm sm:text-base font-bold text-center px-4 text-white">{season.season}</p>
|
||||
</div>
|
||||
</Link>
|
||||
))}
|
||||
</div>
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
</>
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user