Add guid to items created during updates
This commit is contained in:
parent
76d54e15fd
commit
44253beea9
18
src/job.rs
18
src/job.rs
|
@ -169,10 +169,14 @@ impl Job {
|
|||
}
|
||||
let channel = self.channel.as_mut().unwrap();
|
||||
let update_time = chrono::Utc::now();
|
||||
let mut guid = rss::Guid::default();
|
||||
guid.set_permalink(false);
|
||||
guid.set_value(update_time.timestamp().to_string().as_str());
|
||||
let item = rss::ItemBuilder::default()
|
||||
.title(format!("Update to '{}'", self.url))
|
||||
.link(self.url.clone())
|
||||
.pub_date(update_time.to_rfc2822())
|
||||
.guid(Some(guid))
|
||||
.content(format!(r#"
|
||||
New content at {}: <br>
|
||||
<pre class="new-value">
|
||||
|
@ -282,4 +286,18 @@ output_file = ./src/job_example.rss
|
|||
assert_eq!(job.output_file.as_ref().unwrap().to_str().unwrap(), "./src/job_example.rss");
|
||||
assert_eq!(job.last_value().unwrap(), "Version 1.64.0");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn new_updates_have_different_guids() {
|
||||
let conf = Conf::get_default_conf();
|
||||
let mut job = Job::new("example", "selector", &conf);
|
||||
job.output_file = None;
|
||||
job.update("update 1", "diff");
|
||||
std::thread::sleep(Duration::new(1, 0));
|
||||
job.update("update 2", "diff");
|
||||
assert!(job.channel.as_ref().unwrap().items[0].guid.is_some());
|
||||
assert!(job.channel.as_ref().unwrap().items[1].guid.is_some());
|
||||
assert_ne!(job.channel.as_ref().unwrap().items[0].guid.as_ref().unwrap(),
|
||||
job.channel.as_ref().unwrap().items[1].guid.as_ref().unwrap());
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue