121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
|
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
|
+
+
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
|
let url = item.link().unwrap().to_string();
posts.insert(date.clone(), url.clone());
};
*/
match rss::Channel::read_from(&content[..]) {
Ok(feed) => {
for item in feed.items() {
match item.link() {
Some(link) => {
let date = match item.pub_date() {
Some(feed_date) => DateTime::parse_from_rfc2822(feed_date),
None => DateTime::parse_from_rfc3339(&item.dublin_core_ext().unwrap().dates()[0]),
}?;
let url = item.link().unwrap().to_string();
posts.insert(date.clone(), url.clone());
let date = match item.pub_date() {
Some(feed_date) => DateTime::parse_from_rfc2822(feed_date),
None => DateTime::parse_from_rfc3339(&item.dublin_core_ext().unwrap().dates()[0]),
}?;
let url = link.to_string();
posts.insert(date.clone(), url.clone());
},
None => {}
}
};
},
Err(err) => match err {
rss::Error::InvalidStartTag => {
let feed = atom_syndication::Feed::read_from(&content[..])
.with_context(|| format!("Problem opening feed url:\n{}", &url))?;
for item in feed.entries() {
|