diff --git a/src/pages/index.astro b/src/pages/index.astro index ee0fc5b..4681306 100644 --- a/src/pages/index.astro +++ b/src/pages/index.astro @@ -1,11 +1,20 @@ --- import getAllFeedItems from "../services/feeds"; +function isRecent(date: number): boolean { + const now = Date.now(); + const sixHours = 6 * 60 * 60 * 1000; + return now - date < sixHours; +} + const feedItems = await getAllFeedItems(); +const recentCount = feedItems.contents.filter((item) => + isRecent(item.pubIsoDate), +).length; const categories = Array.from( new Set(feedItems.contents.map((item) => item.category)), ).sort(); -const categoriesSelectorCss = categories +const categoriesSelectorCss = ["Recent", ...categories] .map( (c) => ` #category-picker:has(#${c}:checked) ~ main ul { @@ -35,7 +44,9 @@ const categoriesSelectorCss = categories 📰 Carter's RSS Feeds - {feedItems.contents.length} item(s) | {feedItems.errors.length} error(s) + {recentCount} recent item(s) | {feedItems.contents.length} item(s) | { + feedItems.errors.length + } error(s) { - ["All", ...categories.sort()].map((category) => ( + ["All", "Recent", ...categories.sort()].map((category) => ( { feedItems.contents.map((item) => ( - +
- {feedItems.contents.length} item(s) | {feedItems.errors.length} error(s) + {recentCount} recent item(s) | {feedItems.contents.length} item(s) | { + feedItems.errors.length + } error(s)