fix feed time

This commit is contained in:
ld3zian 2025-02-05 16:03:44 -07:00
parent 01734e8ce5
commit 06025b567e
3 changed files with 44 additions and 6 deletions

View file

@ -214,16 +214,26 @@ export async function getChaptersByHid(
for (const chap of rawChapters) {
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);
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({
id: chap.id,
chap: chap.chap.toString(),
title: chap.title || `Chapter ${chap.chap}`,
updated_at: chap.updated_at,
created_at: new Date(chap.created_at).toISOString(), // Use created_at
md_comics: {
title: comicTitle,
slug: slug,
@ -231,7 +241,7 @@ export async function getChaptersByHid(
}
});
} 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);
return deduplicatedChapters.sort((a, b) =>
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()
);
}

View file

@ -39,3 +39,15 @@ export interface Announcement {
url: string;
};
}
export interface ChapterDetail {
id: string;
chap: string;
title: string;
created_at: string;
md_comics: {
title: string;
slug: string;
md_covers?: ComicCover[];
};
}

View file

@ -48,7 +48,19 @@ export const GET: APIRoute = async ({ params, request }) => {
});
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 rawDate = chapter.created_at.endsWith('Z')
? chapter.created_at
: `${chapter.created_at}Z`;
const pubDate = isValidDate(rawDate) ? new Date(rawDate) : new Date();
feed.addItem({
title: `${chapter.md_comics.title} - Chapter ${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>
</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));
}