Skip to content
This repository has been archived by the owner on Jul 14, 2024. It is now read-only.

Update pre-v4.3.0 - Merged Branch pre-push-prev4.3.0 to main #98

Merged
merged 2 commits into from
Nov 18, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 9 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -110,14 +110,7 @@ git clone https://github.com/DevanAbinaya/Ani-Moopa.git
npm install
```

3. Generate Prisma :

```bash
npx prisma migrate dev
npx prisma generate
```

4. Create `.env` file in the root folder and put this inside the file :
3. Create `.env` file in the root folder and put this inside the file :

```bash
## AniList
Expand All @@ -142,12 +135,19 @@ DATABASE_URL="Your postgresql connection url"
REDIS_URL="rediss://username:password@host:port"
```

5. Add this endpoint as Redirect Url on AniList Developer :
4. Add this endpoint as Redirect Url on AniList Developer :

```bash
https://your-website-domain/api/auth/callback/AniListProvider
```

5. Generate Prisma :

```bash
npx prisma migrate dev
npx prisma generate
```

6. Start local server :

```bash
Expand Down
10 changes: 8 additions & 2 deletions components/anime/viewMode/thumbnailDetail.js
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,12 @@ export default function ThumbnailDetail({
let prog = (time / duration) * 100;
if (prog > 90) prog = 100;

const parsedImage = image
? image?.includes("null")
? info.coverImage?.extraLarge
: image
: info.coverImage?.extraLarge || null;

return (
<Link
key={index}
Expand All @@ -28,9 +34,9 @@ export default function ThumbnailDetail({
>
<div className="w-[43%] lg:w-[30%] relative shrink-0 z-40 rounded-lg overflow-hidden shadow-[4px_0px_5px_0px_rgba(0,0,0,0.3)]">
<div className="relative">
{image && (
{parsedImage && (
<Image
src={image || ""}
src={parsedImage || ""}
alt={`Episode ${epi?.number} Thumbnail`}
width={520}
height={236}
Expand Down
10 changes: 8 additions & 2 deletions components/anime/viewMode/thumbnailOnly.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,12 @@ export default function ThumbnailOnly({
const duration = artStorage?.[episode?.id]?.duration;
let prog = (time / duration) * 100;
if (prog > 90) prog = 100;

const parsedImage = image
? image?.includes("null")
? info.coverImage?.extraLarge
: image
: info.coverImage?.extraLarge || null;
return (
<Link
// key={index}
Expand All @@ -37,9 +43,9 @@ export default function ThumbnailOnly({
}}
/>
{/* <div className="absolute inset-0 bg-black z-30 opacity-20" /> */}
{image && (
{parsedImage && (
<Image
src={image || ""}
src={parsedImage || ""}
alt={`Episode ${episode?.number} Thumbnail`}
width={500}
height={500}
Expand Down
2 changes: 1 addition & 1 deletion components/home/content.js
Original file line number Diff line number Diff line change
Expand Up @@ -312,7 +312,7 @@ export default function Content({
<Fragment>
<Image
src="/svg/episode-badge.svg"
alt="episode-bade"
alt="episode-badge"
width={200}
height={100}
className="w-24 lg:w-32 absolute top-1 -right-[12px] lg:-right-[17px] z-40"
Expand Down
2 changes: 1 addition & 1 deletion components/watch/secondary/episodeLists.js
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ export default function EpisodeLists({

return (
<div className="w-screen lg:max-w-sm xl:max-w-lg">
<div className="flex gap-4 pl-5 pb-5">
<div className="flex gap-4 px-3 lg:pl-5 pb-5">
<button
disabled={!track?.next}
onClick={() => {
Expand Down
2 changes: 1 addition & 1 deletion lib/anify/getMangaId.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ export async function fetchInfo(romaji, english, native) {
}&type=manga`
);

const findManga = getManga.find(
const findManga = getManga?.results?.find(
(manga) =>
manga.title.romaji === romaji ||
manga.title.english === english ||
Expand Down
12 changes: 8 additions & 4 deletions lib/anilist/aniAdvanceSearch.js
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,12 @@ export async function aniAdvanceSearch({
}, {});

if (type === "MANGA") {
const controller = new AbortController();
const signal = controller.signal;

const response = await fetch("https://api.anify.tv/search-advanced", {
method: "POST",
signal: signal,
body: JSON.stringify({
sort: "averageRating",
sortDirection: "DESC",
Expand All @@ -42,13 +46,13 @@ export async function aniAdvanceSearch({
const data = await response.json();
return {
pageInfo: {
hasNextPage: data.length >= (perPage ?? 20),
hasNextPage: page < data.total,
currentPage: page,
lastPage: Math.ceil(data.length / (perPage ?? 20)),
lastPage: Math.ceil(data.lastPage),
perPage: perPage ?? 20,
total: data.length,
total: data.total,
},
media: data.map((item) => ({
media: data.results?.map((item) => ({
averageScore: item.averageRating,
bannerImage: item.bannerImage,
chapters: item.totalChapters,
Expand Down
4 changes: 2 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "moopa",
"version": "4.2.5",
"version": "4.3.0",
"private": true,
"founder": "Factiven",
"scripts": {
Expand Down
7 changes: 3 additions & 4 deletions pages/en/manga/[...id].js
Original file line number Diff line number Diff line change
Expand Up @@ -254,7 +254,7 @@ export async function getServerSideProps(context) {
const datas = await getAnifyInfo(mangadexId);

aniId =
datas.mappings.filter((i) => i.providerId === "anilist")[0]?.id || null;
datas.mappings?.filter((i) => i.providerId === "anilist")[0]?.id || null;

if (!aniId) {
info = datas;
Expand Down Expand Up @@ -363,7 +363,7 @@ export async function getServerSideProps(context) {
data = await getAnifyInfo(mangadexId);

const aniListId =
data.mappings.filter((i) => i.providerId === "anilist")[0]?.id || null;
data.mappings?.filter((i) => i.providerId === "anilist")[0]?.id || null;

const response = await fetch("https://graphql.anilist.co/", {
method: "POST",
Expand All @@ -389,8 +389,7 @@ export async function getServerSideProps(context) {
color: textColor,
};

if(redis)
{
if (redis) {
await redis.set(
`mangaPage:${mangadexId}`,
JSON.stringify({ data, info, color }),
Expand Down
20 changes: 11 additions & 9 deletions pre-release.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,16 @@

This pre-release update is intended exclusively for our GitHub repository code. When we mark a release as "pre-release," it signifies that our website is up-to-date with this pre-release code. However, please note that this code is not yet officially released to the public.

## 🎉 Update pre-v4.1.4
## 🎉 Update pre-v4.3.0

## Added
## What's Changed

- Added dubbed gogoanime
- Added new feature to search episode by image

### Fixed

- Greatly improved search ui/ux
- Resolved issue: 9anime and zoro providers doesn't works
- Added changelogs section
- Added recommendations based on user lists (must be logged in)
- New Player!
- Double tap to seek
- Preview thumbnail (only zoro providers support this atm)
- Removed 9anime provider
- Fixed missing episodes thumbnail
- Fixed manga search and getting manga using anilist id
- And other minor bug fixes!
12 changes: 7 additions & 5 deletions utils/getTimes.js
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,7 @@ export const timeStamptoHour = (timestamp) => {

export function unixTimestampToRelativeTime(unixTimestamp) {
const now = Math.floor(Date.now() / 1000); // Current Unix timestamp in seconds
const secondsAgo = now - unixTimestamp;
let secondsDifference = now - unixTimestamp;

const intervals = [
{ label: "year", seconds: 31536000 },
Expand All @@ -121,12 +121,14 @@ export function unixTimestampToRelativeTime(unixTimestamp) {
{ label: "second", seconds: 1 },
];

const isFuture = secondsDifference < 0;
secondsDifference = Math.abs(secondsDifference);

for (const interval of intervals) {
const count = Math.floor(secondsAgo / interval.seconds);
const count = Math.floor(secondsDifference / interval.seconds);
if (count >= 1) {
return count === 1
? ` ${count} ${interval.label} ago`
: ` ${count} ${interval.label}s ago`;
const label = count === 1 ? interval.label : `${interval.label}s`;
return isFuture ? `${count} ${label} from now` : `${count} ${label} ago`;
}
}

Expand Down
11 changes: 8 additions & 3 deletions utils/imageUtils.js
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,15 @@ export function getRandomId() {
export function truncateImgUrl(url) {
// Find the index of .png if not found find the index of .jpg
let index =
url.indexOf(".png") !== -1 ? url.indexOf(".png") : url.indexOf(".jpg");
url?.indexOf(".png") !== -1 ? url?.indexOf(".png") : url?.indexOf(".jpg");

if (index !== -1) {
// If .png is found
url = url.slice(0, index + 4); // Slice the string from the start to the index of .png plus 4 (the length of .png)
// If .png or .jpg is found
url = url?.slice(0, index + 4); // Slice the string from the start to the index of .png or .jpg plus 4 (the length of .png or .jpg)
} else {
// If .png or .jpg is not found
return url; // Return the original url string
}

return url;
}
Loading