From 02c2a0808f455c67e7ed4dfe0797b166fa5ccc1a Mon Sep 17 00:00:00 2001 From: John Curcio Date: Thu, 5 Dec 2019 13:19:10 -0300 Subject: [PATCH] Add publication date to medium liquid tag (#4961) (#5002) [deploy] * Add publication date to medium liquid tag * Add time tag to publication date and fix timezone issue --- app/services/medium_article_retrieval_service.rb | 11 +++++++++++ app/views/liquids/_medium.html.erb | 4 ++-- spec/liquid_tags/medium_tag_spec.rb | 2 ++ .../services/medium_article_retrieval_service_spec.rb | 2 ++ 4 files changed, 17 insertions(+), 2 deletions(-) diff --git a/app/services/medium_article_retrieval_service.rb b/app/services/medium_article_retrieval_service.rb index fada28ed0..071baba13 100644 --- a/app/services/medium_article_retrieval_service.rb +++ b/app/services/medium_article_retrieval_service.rb @@ -17,13 +17,24 @@ class MediumArticleRetrievalService reading_time = page.at("meta[name='twitter:data1']")["value"] author = page.at("meta[name='author']")["content"] author_image = page.at("img[alt='#{author}']")["src"] + published_time = page.at("meta[property='article:published_time']")["content"] { title: title, author: author, author_image: author_image, reading_time: reading_time, + published_time: published_time, + publication_date: publication_date(published_time), url: url } end + + private + + def publication_date(published_time) + Time.zone.parse(published_time).strftime("%b %-d, %Y") + rescue ArgumentError, NoMethodError => e + Rails.logger.error("#{published_time} is not a valid date: #{e}") + end end diff --git a/app/views/liquids/_medium.html.erb b/app/views/liquids/_medium.html.erb index 3bce4d991..d433a6417 100644 --- a/app/views/liquids/_medium.html.erb +++ b/app/views/liquids/_medium.html.erb @@ -1,13 +1,13 @@