diff --git a/.gitignore b/.gitignore index db6a2a96fc1e7fae3d5a2f274b3e1f7536da7b4f..ff9669290916918e439e269fccf1ec62b5621761 100644 --- a/.gitignore +++ b/.gitignore @@ -8,4 +8,4 @@ target public/**/*.js public/**/view/* public/standard/test_sitemap.xml -public/standard/sitemap.xml \ No newline at end of file +public/standard/dyn_sitemap.xml \ No newline at end of file diff --git a/public/standard/robots.txt b/public/standard/robots.txt index 003d94f7b9212910379c47ef847fc8ed046e4f6f..ebedbc16e83c6f533c4ca0f6c80254b2bf210958 100644 --- a/public/standard/robots.txt +++ b/public/standard/robots.txt @@ -1,2 +1,4 @@ User-agent: * Sitemap: https://kuadrado-software.fr/sitemap.xml +Sitemap: https://kuadrado-software.fr/dyn_sitemap.xml + diff --git a/public/standard/sitemap.xml b/public/standard/sitemap.xml index 1e75f57c19a447b908a8ce4531cceefe3c41f8d0..dca1ebf47481e6dcea3cca2da191f92e34bb5ab4 100644 --- a/public/standard/sitemap.xml +++ b/public/standard/sitemap.xml @@ -1,19 +1,23 @@ -<?xml version="1.0" encoding="UTF-8"?> +<?xml version="1.0" encoding="utf-8"?> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> - <url> - <loc>https://kuadrado-software.fr</loc> - <lastmod>2021-11-19</lastmod> - </url> - <url> - <loc>https://kuadrado-software.fr/games/</loc> - <lastmod>2021-11-19</lastmod> - </url> - <url> - <loc>https://kuadrado-software.fr/education/</loc> - <lastmod>2021-11-19</lastmod> - </url> - <url> - <loc>https://kuadrado-software.fr/software-development/</loc> - <lastmod>2021-11-19</lastmod> - </url> -</urlset> + <url> + <loc>https://kuadrado-software.fr/</loc> + <lastmod>2022-05-25T00:00:00+00:00</lastmod> + </url> + <url> + <loc>https://kuadrado-software.fr/games/</loc> + <lastmod>2022-05-25T00:00:00+00:00</lastmod> + </url> + <url> + <loc>https://kuadrado-software.fr/education/</loc> + <lastmod>2022-05-25T00:00:00+00:00</lastmod> + </url> + <url> + <loc>https://kuadrado-software.fr/software-development/</loc> + <lastmod>2022-05-25T00:00:00+00:00</lastmod> + </url> + <url> + <loc>https://localhost/games/view/fr/glitch/</loc> + <lastmod>2022-05-25T00:00:00+00:00</lastmod> + </url> +</urlset> \ No newline at end of file diff --git a/src/service/articles.rs b/src/service/articles.rs index 6133cf292bf228dbf7dd111a14be83a424812b3c..b9e4ee4c4b96257b067fcd6414dc29f98412cccf 100644 --- a/src/service/articles.rs +++ b/src/service/articles.rs @@ -118,7 +118,7 @@ pub async fn post_article( } } _ => { - return HttpResponse::InternalServerError().body("Error creating article page") + return HttpResponse::InternalServerError().body("Error creating article page"); } } HttpResponse::Created().json(res) diff --git a/src/static_view.rs b/src/static_view.rs index 3d3436c2ba9807e2c396f91a049cbab56c714265..059f0019e09e75fd3950c350746fa94712b4a856 100644 --- a/src/static_view.rs +++ b/src/static_view.rs @@ -118,6 +118,21 @@ pub fn delete_static_view( Ok(()) } +fn init_sitemap(sitemap_path: &PathBuf) -> Result<(), String> { + File::create(sitemap_path).expect("Couldn't create sitemap"); + let sm = File::open(sitemap_path).unwrap(); + let writer = SiteMapWriter::new(&sm); + match writer.start_urlset() { + Ok(url_w) => { + if let Err(e) = url_w.end() { + return Err(format!("Couldn't write new sitemap closing tags. {}", e)); + } + Ok(()) + } + Err(e) => Err(format!("Couldn't create new sitemap urlset. {}", e)), + } +} + fn update_sitemap( app_state: &AppState, uri: &Option<String>, @@ -132,17 +147,24 @@ fn update_sitemap( if value.eq("testing") { String::from("test_sitemap.xml") } else { - String::from("sitemap.xml") + String::from("dyn_sitemap.xml") } } - Err(_) => String::from("sitemap.xml"), + Err(_) => String::from("dyn_sitemap.xml"), }; let standard_dir_pth = app_state.env.public_dir.join("standard"); let uri = uri.as_ref().unwrap().to_owned(); - let sitemap = - File::open(standard_dir_pth.join(&sitemap_name)).expect("Couldn't open file sitemap.xml"); + let sitemap_path = standard_dir_pth.join(&sitemap_name); + + if !sitemap_path.exists() { + if let Err(e) = init_sitemap(&sitemap_path) { + return Err(e); + } + } + + let sitemap = File::open(&sitemap_path).expect("Couldn't open file sitemap.xml"); let mut urls = Vec::new(); @@ -155,7 +177,7 @@ fn update_sitemap( let updated_sitemap = File::create(standard_dir_pth.join("tmp_sitemap.xml")) .expect("Couldn't create temporary sitemap"); - let writer = SiteMapWriter::new(updated_sitemap); + let writer = SiteMapWriter::new(&updated_sitemap); let mut url_writer = writer .start_urlset() .expect("Unable to write sitemap urlset");