about summary refs log tree commit diff
path: root/app
diff options
context:
space:
mode:
Diffstat (limited to 'app')
-rw-r--r--app/helpers/application_helper.rb16
-rw-r--r--app/javascript/core/settings.js2
-rw-r--r--app/views/accounts/_og.html.haml6
-rwxr-xr-xapp/views/layouts/application.html.haml7
-rw-r--r--app/views/shared/_og.html.haml6
-rw-r--r--app/views/stream_entries/_og_description.html.haml5
-rw-r--r--app/workers/scheduler/pghero_scheduler.rb11
7 files changed, 49 insertions, 4 deletions
diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb
index c002017ef..e9b48fa98 100644
--- a/app/helpers/application_helper.rb
+++ b/app/helpers/application_helper.rb
@@ -82,4 +82,20 @@ module ApplicationHelper
     output << 'rtl' if locale_direction == 'rtl'
     output.reject(&:blank?).join(' ')
   end
+
+  def cdn_host
+    ENV['CDN_HOST'].presence
+  end
+
+  def cdn_host?
+    cdn_host.present?
+  end
+
+  def storage_host
+    ENV['S3_ALIAS_HOST'].presence || ENV['S3_CLOUDFRONT_HOST'].presence
+  end
+
+  def storage_host?
+    storage_host.present?
+  end
 end
diff --git a/app/javascript/core/settings.js b/app/javascript/core/settings.js
index 377c899dc..af97c84f9 100644
--- a/app/javascript/core/settings.js
+++ b/app/javascript/core/settings.js
@@ -56,7 +56,7 @@ delegate(document, '.input-copy input', 'click', ({ target }) => {
 });
 
 delegate(document, '.input-copy button', 'click', ({ target }) => {
-  const input = target.parentNode.querySelector('input');
+  const input = target.parentNode.querySelector('.input-copy__wrapper input');
 
   input.focus();
   input.select();
diff --git a/app/views/accounts/_og.html.haml b/app/views/accounts/_og.html.haml
index a583b39c2..de948ec6a 100644
--- a/app/views/accounts/_og.html.haml
+++ b/app/views/accounts/_og.html.haml
@@ -1,7 +1,11 @@
+- description = account_description(account)
+
+%meta{ name: 'description', content: description }/
+
 = opengraph 'og:url', url
 = opengraph 'og:site_name', site_title
 = opengraph 'og:title', yield(:page_title).strip
-= opengraph 'og:description', account_description(account)
+= opengraph 'og:description', description
 = opengraph 'og:image', full_asset_url(account.avatar.url(:original))
 = opengraph 'og:image:width', '120'
 = opengraph 'og:image:height', '120'
diff --git a/app/views/layouts/application.html.haml b/app/views/layouts/application.html.haml
index 36b4e9cae..7d3daf6c9 100755
--- a/app/views/layouts/application.html.haml
+++ b/app/views/layouts/application.html.haml
@@ -3,6 +3,13 @@
   %head
     %meta{ charset: 'utf-8' }/
     %meta{ name: 'viewport', content: 'width=device-width, initial-scale=1' }/
+
+    - if cdn_host?
+      %link{ rel: 'dns-prefetch', href: cdn_host }/
+
+    - if storage_host?
+      %link{ rel: 'dns-prefetch', href: storage_host }/
+
     %link{ rel: 'icon', href: favicon_path, type: 'image/x-icon' }/
     %link{ rel: 'apple-touch-icon', sizes: '180x180', href: '/apple-touch-icon.png' }/
     %link{ rel: 'mask-icon', href: '/mask-icon.svg', color: '#2B90D9' }/
diff --git a/app/views/shared/_og.html.haml b/app/views/shared/_og.html.haml
index 76db511cd..802d8c41d 100644
--- a/app/views/shared/_og.html.haml
+++ b/app/views/shared/_og.html.haml
@@ -1,9 +1,13 @@
 - thumbnail = @instance_presenter.thumbnail
+- description = strip_tags(@instance_presenter.site_short_description.presence || @instance_presenter.site_description.presence || t('about.about_mastodon_html'))
+
+%meta{ name: 'description', content: description }/
+
 = opengraph 'og:site_name', t('about.hosted_on', domain: site_hostname)
 = opengraph 'og:url', url_for(only_path: false)
 = opengraph 'og:type', 'website'
 = opengraph 'og:title', @instance_presenter.site_title
-= opengraph 'og:description', strip_tags(@instance_presenter.site_short_description.presence || @instance_presenter.site_description.presence || t('about.about_mastodon_html'))
+= opengraph 'og:description', description
 = opengraph 'og:image', full_asset_url(thumbnail&.file&.url || asset_pack_path('preview.jpg', protocol: :request))
 = opengraph 'og:image:width', thumbnail ? thumbnail.meta['width'] : '1200'
 = opengraph 'og:image:height', thumbnail ? thumbnail.meta['height'] : '630'
diff --git a/app/views/stream_entries/_og_description.html.haml b/app/views/stream_entries/_og_description.html.haml
index 3d122b94e..a7b18424d 100644
--- a/app/views/stream_entries/_og_description.html.haml
+++ b/app/views/stream_entries/_og_description.html.haml
@@ -1 +1,4 @@
-= opengraph 'og:description', status_description(activity)
+- description = status_description(activity)
+
+%meta{ name: 'description', content: description }/
+= opengraph 'og:description', description
diff --git a/app/workers/scheduler/pghero_scheduler.rb b/app/workers/scheduler/pghero_scheduler.rb
new file mode 100644
index 000000000..4453bf2cd
--- /dev/null
+++ b/app/workers/scheduler/pghero_scheduler.rb
@@ -0,0 +1,11 @@
+# frozen_string_literal: true
+
+class Scheduler::PgheroScheduler
+  include Sidekiq::Worker
+
+  sidekiq_options unique: :until_executed, retry: 0
+
+  def perform
+    PgHero.capture_space_stats
+  end
+end