commit 65301ac547ffe70fd2726f4e1320103b307b9b19
parent eff481a299357c39b1f151e2b3d012ecb47cfb0b
Author: Andrej Kacian <ticho@claws-mail.org>
Date: Tue, 18 Sep 2018 19:29:12 +0200
Set missing pubdate/moddate in RSSyl items to the other one, if available.
Diffstat:
2 files changed, 24 insertions(+), 3 deletions(-)
diff --git a/src/plugins/rssyl/parse822.c b/src/plugins/rssyl/parse822.c
@@ -103,10 +103,12 @@ FeedItem *rssyl_parse_folder_item_file(gchar *path)
started_author = TRUE;
}
- /* Date */
+ /* Date (set both FeedItem timestamps) */
if( !strcmp(line[0], "Date") ) {
feed_item_set_date_modified(item,
procheader_date_parse(NULL, line[1], 0));
+ feed_item_set_date_published(item,
+ feed_item_get_date_modified(item));
debug_print("RSSyl: got date \n" );
}
diff --git a/src/plugins/rssyl/rssyl_add_item.c b/src/plugins/rssyl/rssyl_add_item.c
@@ -303,11 +303,30 @@ void rssyl_add_item(RFolderItem *ritem, FeedItem *feed_item)
}
*/
- /* If neither item date is set, use date from source (Atom only). */
+ /* If one of the timestamps is empty, set it to value of the other one. */
if( feed_item_get_date_modified(feed_item) == -1 &&
- feed_item_get_date_published(feed_item) == -1 )
+ feed_item_get_date_published(feed_item) >= 0 ) {
+ debug_print("RSSyl: setting missing moddate to pubdate %ld\n",
+ feed_item_get_date_published(feed_item));
+ feed_item_set_date_modified(feed_item,
+ feed_item_get_date_published(feed_item));
+ } else if( feed_item_get_date_published(feed_item) == -1 &&
+ feed_item_get_date_modified(feed_item) >= 0 ) {
+ debug_print("RSSyl: setting missing pubdate to modddate %ld\n",
+ feed_item_get_date_modified(feed_item));
feed_item_set_date_published(feed_item,
+ feed_item_get_date_modified(feed_item));
+ } else if( feed_item_get_date_modified(feed_item) == -1 &&
+ feed_item_get_date_published(feed_item) == -1 &&
+ feed_item_get_sourcedate(feed_item) >= 0 ) {
+ /* If neither item date is set, use date from source (Atom only). */
+ debug_print("RSSyl: setting missing pubdate and moddate to feed source date %ld\n",
feed_item_get_sourcedate(feed_item));
+ feed_item_set_date_modified(feed_item,
+ feed_item_get_sourcedate(feed_item));
+ feed_item_set_date_published(feed_item,
+ feed_item_get_sourcedate(feed_item));
+ }
/* Fix up subject, url and ID (rssyl_format_string()) so that
* comparing doesn't break. */