From fd1c32f5552cc116e1cb4c95fcd7cc7a7b069335 Mon Sep 17 00:00:00 2001 From: Martin Lindhe Date: Mon, 3 Feb 2025 04:00:44 +0100 Subject: [PATCH] rss: add field, fixes #356 (#358) * rss: add field, fixes #356 * rss: also add pub_date on user feed * fix(fmt) --------- Co-authored-by: Matthew Esposito --- Cargo.lock | 5 +++-- Cargo.toml | 1 + src/subreddit.rs | 2 ++ src/user.rs | 2 ++ 4 files changed, 8 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 20d528b..24791b4 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -274,9 +274,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "chrono" -version = "0.4.38" +version = "0.4.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401" +checksum = "7e36cc9d416881d2e24f9a963be5fb1cd90966419ac844274161d10488b3e825" dependencies = [ "num-traits", ] @@ -1367,6 +1367,7 @@ dependencies = [ "brotli", "build_html", "cached", + "chrono", "clap", "common-words-all", "cookie", diff --git a/Cargo.toml b/Cargo.toml index a4d0170..843b9c9 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -51,6 +51,7 @@ common-words-all = { version = "0.0.2", default-features = false, features = ["e hyper-rustls = { version = "0.24.2", features = [ "http2" ] } tegen = "0.1.4" serde_urlencoded = "0.7.1" +chrono = { version = "0.4.39", default-features = false, features = [ "std" ] } htmlescape = "0.3.1" diff --git a/src/subreddit.rs b/src/subreddit.rs index 2362a12..d5d5196 100644 --- a/src/subreddit.rs +++ b/src/subreddit.rs @@ -11,6 +11,7 @@ use hyper::{Body, Request, Response}; use log::{debug, trace}; use rinja::Template; +use chrono::DateTime; use once_cell::sync::Lazy; use regex::Regex; use time::{Duration, OffsetDateTime}; @@ -607,6 +608,7 @@ pub async fn rss(req: Request) -> Result, String> { link: Some(utils::get_post_url(&post)), author: Some(post.author.name), content: Some(rewrite_urls(&post.body)), + pub_date: Some(DateTime::from_timestamp(post.created_ts as i64, 0).unwrap_or_default().to_rfc2822()), description: Some(format!( "Comments", config::get_setting("REDLIB_FULL_URL").unwrap_or_default(), diff --git a/src/user.rs b/src/user.rs index 50a4daa..2fb8b0d 100644 --- a/src/user.rs +++ b/src/user.rs @@ -5,6 +5,7 @@ use crate::client::json; use crate::server::RequestExt; use crate::utils::{error, filter_posts, format_url, get_filters, nsfw_landing, param, setting, template, Post, Preferences, User}; use crate::{config, utils}; +use chrono::DateTime; use hyper::{Body, Request, Response}; use rinja::Template; use time::{macros::format_description, OffsetDateTime}; @@ -165,6 +166,7 @@ pub async fn rss(req: Request) -> Result, String> { title: Some(post.title.to_string()), link: Some(utils::get_post_url(&post)), author: Some(post.author.name), + pub_date: Some(DateTime::from_timestamp(post.created_ts as i64, 0).unwrap_or_default().to_rfc2822()), content: Some(rewrite_urls(&post.body)), ..Default::default() })