mirror of
https://github.com/ld3z/new-manga.git
synced 2026-11-09 20:53:45 -07:00
fix feed time
This commit is contained in:
parent
01734e8ce5
commit
06025b567e
3 changed files with 44 additions and 6 deletions
|
|
@ -214,16 +214,26 @@ export async function getChaptersByHid(
|
||||||
|
|
||||||
for (const chap of rawChapters) {
|
for (const chap of rawChapters) {
|
||||||
try {
|
try {
|
||||||
if (!chap.id || !chap.chap || !chap.updated_at) {
|
// Add created_at check
|
||||||
|
if (!chap.id || !chap.chap || !chap.created_at) {
|
||||||
console.warn(`Skipping chapter with missing fields in ${hid}:`, chap);
|
console.warn(`Skipping chapter with missing fields in ${hid}:`, chap);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Validate both dates
|
||||||
|
const isValidCreated = !isNaN(Date.parse(chap.created_at));
|
||||||
|
const isValidUpdated = !isNaN(Date.parse(chap.updated_at));
|
||||||
|
|
||||||
|
if (!isValidCreated || !isValidUpdated) {
|
||||||
|
console.warn(`Invalid dates for chapter ${chap.id}`);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
chapters.push({
|
chapters.push({
|
||||||
id: chap.id,
|
id: chap.id,
|
||||||
chap: chap.chap.toString(),
|
chap: chap.chap.toString(),
|
||||||
title: chap.title || `Chapter ${chap.chap}`,
|
title: chap.title || `Chapter ${chap.chap}`,
|
||||||
updated_at: chap.updated_at,
|
created_at: new Date(chap.created_at).toISOString(), // Use created_at
|
||||||
md_comics: {
|
md_comics: {
|
||||||
title: comicTitle,
|
title: comicTitle,
|
||||||
slug: slug,
|
slug: slug,
|
||||||
|
|
@ -231,7 +241,7 @@ export async function getChaptersByHid(
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.error(`Error processing chapter ${chap.id} for ${hid}:`, e);
|
console.error(`Error processing chapter ${chap.id}:`, e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -352,7 +362,7 @@ export async function getChaptersForSlugs(
|
||||||
const deduplicatedChapters = deduplicateChapters(allChapters);
|
const deduplicatedChapters = deduplicateChapters(allChapters);
|
||||||
return deduplicatedChapters.sort((a, b) =>
|
return deduplicatedChapters.sort((a, b) =>
|
||||||
parseFloat(b.chap) - parseFloat(a.chap) ||
|
parseFloat(b.chap) - parseFloat(a.chap) ||
|
||||||
new Date(b.updated_at).getTime() - new Date(a.updated_at).getTime()
|
new Date(b.created_at).getTime() - new Date(a.created_at).getTime()
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -39,3 +39,15 @@ export interface Announcement {
|
||||||
url: string;
|
url: string;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export interface ChapterDetail {
|
||||||
|
id: string;
|
||||||
|
chap: string;
|
||||||
|
title: string;
|
||||||
|
created_at: string;
|
||||||
|
md_comics: {
|
||||||
|
title: string;
|
||||||
|
slug: string;
|
||||||
|
md_covers?: ComicCover[];
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -48,7 +48,19 @@ export const GET: APIRoute = async ({ params, request }) => {
|
||||||
});
|
});
|
||||||
|
|
||||||
chapters.forEach((chapter) => {
|
chapters.forEach((chapter) => {
|
||||||
|
if (!chapter?.created_at) {
|
||||||
|
console.error('Chapter missing created_at:', chapter);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
const chapterUrl = `https://comick.io/comic/${chapter.md_comics.slug}`;
|
const chapterUrl = `https://comick.io/comic/${chapter.md_comics.slug}`;
|
||||||
|
|
||||||
|
const rawDate = chapter.created_at.endsWith('Z')
|
||||||
|
? chapter.created_at
|
||||||
|
: `${chapter.created_at}Z`;
|
||||||
|
|
||||||
|
const pubDate = isValidDate(rawDate) ? new Date(rawDate) : new Date();
|
||||||
|
|
||||||
feed.addItem({
|
feed.addItem({
|
||||||
title: `${chapter.md_comics.title} - Chapter ${chapter.chap}`,
|
title: `${chapter.md_comics.title} - Chapter ${chapter.chap}`,
|
||||||
id: `${chapter.md_comics.slug}-${chapter.chap}`,
|
id: `${chapter.md_comics.slug}-${chapter.chap}`,
|
||||||
|
|
@ -64,7 +76,7 @@ export const GET: APIRoute = async ({ params, request }) => {
|
||||||
<p>New chapter available: Chapter ${chapter.chap}</p>
|
<p>New chapter available: Chapter ${chapter.chap}</p>
|
||||||
</div>
|
</div>
|
||||||
`,
|
`,
|
||||||
date: new Date(chapter.updated_at),
|
date: pubDate,
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
@ -74,3 +86,7 @@ export const GET: APIRoute = async ({ params, request }) => {
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
function isValidDate(dateString: string): boolean {
|
||||||
|
return !isNaN(Date.parse(dateString));
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue