From 1cda2ac3be32c94fc65aa03f9b93cf7f904797bd Mon Sep 17 00:00:00 2001 From: Maurice Parker Date: Tue, 18 Aug 2020 17:44:28 -0500 Subject: [PATCH] Discard the email address in the byline if it is a no reply. Issue #2351 --- Shared/Article Rendering/ArticleRenderer.swift | 11 ++++++++--- Shared/Extensions/ArticleUtilities.swift | 11 ++++++++--- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/Shared/Article Rendering/ArticleRenderer.swift b/Shared/Article Rendering/ArticleRenderer.swift index 9cce8f8b4..90ae8b807 100644 --- a/Shared/Article Rendering/ArticleRenderer.swift +++ b/Shared/Article Rendering/ArticleRenderer.swift @@ -218,19 +218,24 @@ private extension ArticleRenderer { } isFirstAuthor = false - if let emailAddress = author.emailAddress, emailAddress.contains(" ") { + var authorEmailAddress: String? = nil + if let emailAddress = author.emailAddress, !(emailAddress.contains("noreply@") || emailAddress.contains("no-reply@")) { + authorEmailAddress = emailAddress + } + + if let emailAddress = authorEmailAddress, emailAddress.contains(" ") { byline += emailAddress // probably name plus email address } else if let name = author.name, let url = author.url { byline += name.htmlByAddingLink(url) } - else if let name = author.name, let emailAddress = author.emailAddress { + else if let name = author.name, let emailAddress = authorEmailAddress { byline += "\(name) <\(emailAddress)>" } else if let name = author.name { byline += name } - else if let emailAddress = author.emailAddress { + else if let emailAddress = authorEmailAddress { byline += "<\(emailAddress)>" // TODO: mailto link } else if let url = author.url { diff --git a/Shared/Extensions/ArticleUtilities.swift b/Shared/Extensions/ArticleUtilities.swift index c5d2421b1..cfc4e34fb 100644 --- a/Shared/Extensions/ArticleUtilities.swift +++ b/Shared/Extensions/ArticleUtilities.swift @@ -134,17 +134,22 @@ extension Article { byline += ", " } isFirstAuthor = false + + var authorEmailAddress: String? = nil + if let emailAddress = author.emailAddress, !(emailAddress.contains("noreply@") || emailAddress.contains("no-reply@")) { + authorEmailAddress = emailAddress + } - if let emailAddress = author.emailAddress, emailAddress.contains(" ") { + if let emailAddress = authorEmailAddress, emailAddress.contains(" ") { byline += emailAddress // probably name plus email address } - else if let name = author.name, let emailAddress = author.emailAddress { + else if let name = author.name, let emailAddress = authorEmailAddress { byline += "\(name) <\(emailAddress)>" } else if let name = author.name { byline += name } - else if let emailAddress = author.emailAddress { + else if let emailAddress = authorEmailAddress { byline += "<\(emailAddress)>" } else if let url = author.url {