diff --git a/astro/src/content/settings/settings.ts b/astro/src/content/settings/settings.ts index 968391c..403cc43 100644 --- a/astro/src/content/settings/settings.ts +++ b/astro/src/content/settings/settings.ts @@ -26,7 +26,10 @@ export async function getSettings(): Promise { twitter: { id: websiteResults["twitter_id"], handle: websiteResults["twitter_handle"] - } + }, + lastModified: websiteResults["date_updated"] !== null ? + new Date(websiteResults["date_updated"]) : + new Date(websiteResults["date_created"]) }; const blogResults = result["Blog_Settings"]; @@ -36,7 +39,9 @@ export async function getSettings(): Promise { subtext: blogResults["subtext"], indexRouteTemplate: blogResults["index_route_template"], blogRouteTemplate: blogResults["blog_route_template"], - lastModified: blogResults["date_updated"] !== null ? new Date(blogResults["date_updated"]) : new Date(blogResults["date_created"]) + lastModified: blogResults["date_updated"] !== null ? + new Date(blogResults["date_updated"]) : + new Date(blogResults["date_created"]) }; const projectResults = result["Project_Settings"]; @@ -45,10 +50,33 @@ export async function getSettings(): Promise { title: projectResults["title"], subtext: projectResults["subtext"], indexRouteTemplate: projectResults["index_route_template"], - projectRouteTemplate: projectResults["project_route_template"] + projectRouteTemplate: projectResults["project_route_template"], + lastModified: projectResults["date_updated"] !== null ? + new Date(projectResults["date_updated"]) : + new Date(projectResults["date_created"]) }; const photoResults = result["Photo_Settings"]; + let photoResultsLastModifiedTimestamps: string[] = [ + photoResults["date_created"], + photoResults["date_updated"], + photoResults["category_icons"]["date_created"], + photoResults["category_icons"]["date_updated"], + photoResults["category_icons"]["photos_icon"]["created_on"], + photoResults["category_icons"]["location_icon"]["created_on"], + photoResults["category_icons"]["date_icon"]["created_on"], + photoResults["photo_icons"]["date_created"], + photoResults["photo_icons"]["date_updated"], + photoResults["photo_icons"]["previous_icon"]["created_on"], + photoResults["photo_icons"]["next_icon"]["created_on"], + photoResults["photo_icons"]["close_icon"]["created_on"], + photoResults["photo_icons"]["download_icon"]["created_on"] + ]; + + const photoResultsLastModified = photoResultsLastModifiedTimestamps.sort((a: string, b: string) => { + return new Date(b).getTime() - new Date(a).getTime(); + }); + const photoSettings: WebsitePhotoSettings = { enabled: photoResults["enabled"], categoryIndex: { @@ -103,12 +131,16 @@ export async function getSettings(): Promise { width: photoResults["photo_icons"]["download_icon"]["width"] } } - } + }, + lastModified: new Date(photoResultsLastModified[0]) }; const sitemapResults = result["Sitemap_Settings"]; const sitemapSettings: SitemapSettings = { - perPage: sitemapResults["per_page"] + perPage: sitemapResults["per_page"], + lastModified: sitemapResults["date_updated"] !== null ? + new Date(sitemapResults["date_updated"]) : + new Date(sitemapResults["date_created"]) }; const pluginResults = result["Plugin_Settings"]; @@ -116,7 +148,10 @@ export async function getSettings(): Promise { swetrix: { id: pluginResults["swetrix_id"], url: pluginResults["swetrix_url"] - } + }, + lastModified: pluginResults["date_updated"] !== null ? + new Date(pluginResults["date_updated"]) : + new Date(pluginResults["date_created"]) } if (pluginResults["swetrix_id"] === null && pluginResults["swetrix_url"] === null) { diff --git a/astro/src/types/settings/photo.d.ts b/astro/src/types/settings/photo.d.ts index 37f7997..ad8354b 100644 --- a/astro/src/types/settings/photo.d.ts +++ b/astro/src/types/settings/photo.d.ts @@ -5,6 +5,8 @@ type WebsitePhotoSettings = { category: WebsitePhotoSettingsCategory; album: WebsitePhotoSettingsAlbum; photo: WebsitePhotoSettingsPhoto; + + lastModified: Date; } type WebsitePhotoSettingsCategoryIndex = { diff --git a/astro/src/types/settings/plugin.d.ts b/astro/src/types/settings/plugin.d.ts index ad46ae2..3b809f5 100644 --- a/astro/src/types/settings/plugin.d.ts +++ b/astro/src/types/settings/plugin.d.ts @@ -1,5 +1,7 @@ type PluginSettings = { swetrix: PluginSettingsSwetrix | null; + + lastModified: Date; } type PluginSettingsSwetrix = { diff --git a/astro/src/types/settings/project.d.ts b/astro/src/types/settings/project.d.ts index 5757550..8c49f92 100644 --- a/astro/src/types/settings/project.d.ts +++ b/astro/src/types/settings/project.d.ts @@ -6,4 +6,6 @@ type ProjectSettings = { indexRouteTemplate: string; projectRouteTemplate: string; + + lastModified: Date; } diff --git a/astro/src/types/settings/sitemap.d.ts b/astro/src/types/settings/sitemap.d.ts index 252ceb0..f24909e 100644 --- a/astro/src/types/settings/sitemap.d.ts +++ b/astro/src/types/settings/sitemap.d.ts @@ -1,3 +1,5 @@ type SitemapSettings = { perPage: number; + + lastModified: Date; } diff --git a/astro/src/types/settings/website.d.ts b/astro/src/types/settings/website.d.ts index 7d4ec28..04a4f36 100644 --- a/astro/src/types/settings/website.d.ts +++ b/astro/src/types/settings/website.d.ts @@ -13,6 +13,8 @@ type WebsiteSettings = { copyright: string; twitter: WebsiteSettingsTwitter; + + lastModified: Date; } type WebsiteSettingsColors = {