From fefa96d25911e059fbd719415c8f34ebd104067e Mon Sep 17 00:00:00 2001 From: Brent Simmons Date: Tue, 19 Dec 2017 11:19:46 -0800 Subject: [PATCH] Prefer permalink to link when creating a calculated unique ID. --- .../RSParser/Feeds/XML/RSParsedArticle.m | 22 ++++++++++++------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/Frameworks/RSParser/Feeds/XML/RSParsedArticle.m b/Frameworks/RSParser/Feeds/XML/RSParsedArticle.m index a60fa08b8..6b4439479 100755 --- a/Frameworks/RSParser/Feeds/XML/RSParsedArticle.m +++ b/Frameworks/RSParser/Feeds/XML/RSParsedArticle.m @@ -74,21 +74,31 @@ if (self.datePublished) { datePublishedTimeStampString = [NSString stringWithFormat:@"%.0f", self.datePublished.timeIntervalSince1970]; } - - if (!RSParserStringIsEmpty(self.link) && self.datePublished != nil) { + + // Ideally we have a permalink and a pubDate. Either one would probably be a good guid, but together they should be rock-solid. (In theory. Feeds are buggy, though.) + if (!RSParserStringIsEmpty(self.permalink) && datePublishedTimeStampString) { + [s appendString:self.permalink]; + [s appendString:datePublishedTimeStampString]; + } + + else if (!RSParserStringIsEmpty(self.link) && datePublishedTimeStampString) { [s appendString:self.link]; [s appendString:datePublishedTimeStampString]; } - else if (!RSParserStringIsEmpty(self.title) && self.datePublished != nil) { + else if (!RSParserStringIsEmpty(self.title) && datePublishedTimeStampString) { [s appendString:self.title]; [s appendString:datePublishedTimeStampString]; } - else if (self.datePublished != nil) { + else if (datePublishedTimeStampString) { [s appendString:datePublishedTimeStampString]; } + else if (!RSParserStringIsEmpty(self.permalink)) { + [s appendString:self.permalink]; + } + else if (!RSParserStringIsEmpty(self.link)) { [s appendString:self.link]; } @@ -101,10 +111,6 @@ [s appendString:self.body]; } - else if (!RSParserStringIsEmpty(self.permalink)) { - [s appendString:self.permalink]; - } - return [s rsparser_md5Hash]; }