From dfdae481e4281089e223632d54cc8bc7eb37be9e Mon Sep 17 00:00:00 2001 From: Dwight Scott Date: Thu, 7 Apr 2022 13:53:20 -0400 Subject: [PATCH] cache open graph response (#17157) * Trigger Build * Cache the HTML response for quicker previews * remove unnecessary comments --- app/services/open_graph.rb | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/app/services/open_graph.rb b/app/services/open_graph.rb index 16fa9f37f..93062121d 100644 --- a/app/services/open_graph.rb +++ b/app/services/open_graph.rb @@ -9,9 +9,11 @@ class OpenGraph attr_reader :page, :tags DEFAULT_METHODS = %i[description title url].freeze + CACHE_EXPIRY_IN_MINUTES = 15 def initialize(url) - @page = MetaInspector.new(url) + html = fetch_html(url) + @page = MetaInspector.new(url, document: html) @tags = meta_tags end @@ -80,6 +82,12 @@ class OpenGraph private + def fetch_html(url) + Rails.cache.fetch("#{url}_open_graph_html", expires_in: CACHE_EXPIRY_IN_MINUTES.minutes) do + Net::HTTP.get(URI(url)) + end + end + def group(data) data.each_with_object({}) do |(key, value), hash| group_key = key.split(":").first