diff --git a/crates/api/src/sitemap.rs b/crates/api/src/sitemap.rs index 438a8b8e8ae6439f36c36443c8aa34362c07756f..b1b961350a8492d480f597fea5e009de28d78899 100644 --- a/crates/api/src/sitemap.rs +++ b/crates/api/src/sitemap.rs @@ -26,7 +26,7 @@ async fn generate_urlset( } pub async fn get_sitemap(context: Data<LemmyContext>) -> LemmyResult<HttpResponse> { - info!("Generating sitemap with posts from last {} hours...", 24); + info!("Generating sitemap...",); let posts = Post::list_for_sitemap(&mut context.pool()).await?; info!("Loaded latest {} posts", posts.len()); @@ -36,7 +36,7 @@ pub async fn get_sitemap(context: Data<LemmyContext>) -> LemmyResult<HttpRespons Ok( HttpResponse::Ok() .content_type("application/xml") - .insert_header(header::CacheControl(vec![CacheDirective::MaxAge(86_400)])) // 24 h + .insert_header(header::CacheControl(vec![CacheDirective::MaxAge(3_600)])) // 1 h .body(buf), ) } diff --git a/crates/db_schema/src/impls/post.rs b/crates/db_schema/src/impls/post.rs index f7ff633ecc530c2400eeb87dc8a22a6151232093..d65fd239830c4e1aed00d3a18d64365c472735d4 100644 --- a/crates/db_schema/src/impls/post.rs +++ b/crates/db_schema/src/impls/post.rs @@ -29,7 +29,15 @@ use crate::{ PostUpdateForm, }, traits::{Crud, Likeable, Saveable}, - utils::{get_conn, naive_now, DbPool, DELETED_REPLACEMENT_TEXT, FETCH_LIMIT_MAX}, + utils::{ + get_conn, + naive_now, + DbPool, + DELETED_REPLACEMENT_TEXT, + FETCH_LIMIT_MAX, + SITEMAP_DAYS, + SITEMAP_LIMIT, + }, }; use ::url::Url; use chrono::{Duration, Utc}; @@ -109,8 +117,9 @@ impl Post { .filter(local.eq(true)) .filter(deleted.eq(false)) .filter(removed.eq(false)) - .filter(published.ge(Utc::now().naive_utc() - Duration::days(1))) + .filter(published.ge(Utc::now().naive_utc() - Duration::days(SITEMAP_DAYS))) .order(published.desc()) + .limit(SITEMAP_LIMIT) .load::<(DbUrl, chrono::DateTime<Utc>)>(conn) .await } diff --git a/crates/db_schema/src/utils.rs b/crates/db_schema/src/utils.rs index 9ac2d4c881b6117a49a16995a1e1a2990f91cba5..2b1179bee627b118f906f4229fe0e4c319fa8827 100644 --- a/crates/db_schema/src/utils.rs +++ b/crates/db_schema/src/utils.rs @@ -49,6 +49,8 @@ use url::Url; const FETCH_LIMIT_DEFAULT: i64 = 10; pub const FETCH_LIMIT_MAX: i64 = 50; +pub const SITEMAP_LIMIT: i64 = 50000; +pub const SITEMAP_DAYS: i64 = 31; const POOL_TIMEOUT: Option<Duration> = Some(Duration::from_secs(5)); pub const RANK_DEFAULT: f64 = 0.0001;