From: Andrej Kacian Date: Tue, 18 Sep 2018 17:29:12 +0000 (+0200) Subject: Set missing pubdate/moddate in RSSyl items to the other one, if available. X-Git-Tag: 3.17.2~146 X-Git-Url: http://git.claws-mail.org/?p=claws.git;a=commitdiff_plain;h=65301ac547ffe70fd2726f4e1320103b307b9b19 Set missing pubdate/moddate in RSSyl items to the other one, if available. --- diff --git a/src/plugins/rssyl/parse822.c b/src/plugins/rssyl/parse822.c index b1539367f..3f124146c 100644 --- 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 index 25ce836f2..685d75ba8 100644 --- 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. */