diff --git a/app/assets/stylesheets/application.scss b/app/assets/stylesheets/application.scss index 5e89c210bcf04f8802d83f6756380a764aad71b8..e34f0ba324f68ed3dff3888bfee3c54ab0a1a18c 100644 --- a/app/assets/stylesheets/application.scss +++ b/app/assets/stylesheets/application.scss @@ -262,6 +262,21 @@ body { font-weight: 400; font-family: 'Roboto Mono', monospace; } + + .powered-by { + font-size: 12px; + font-weight: 400; + color: darken(#d9e1e8, 25%); + + a { + color: inherit; + text-decoration: underline; + + &:hover { + text-decoration: none; + } + } + } } .mastodon { diff --git a/app/services/post_status_service.rb b/app/services/post_status_service.rb index e8335639c3ec3f71bae3f40e1f89e6a3ab01a399..69e39c1a6130265f02fc4e63e69dc6943f1420a7 100644 --- a/app/services/post_status_service.rb +++ b/app/services/post_status_service.rb @@ -7,7 +7,7 @@ class PostStatusService < BaseService def call(account, text, in_reply_to = nil) status = account.statuses.create!(text: text, thread: in_reply_to) process_mentions_service.(status) - fan_out_on_write_service.(status) + DistributionWorker.perform_async(status.id) account.ping!(account_url(account, format: 'atom'), [Rails.configuration.x.hub_url]) status end @@ -17,8 +17,4 @@ class PostStatusService < BaseService def process_mentions_service @process_mentions_service ||= ProcessMentionsService.new end - - def fan_out_on_write_service - @fan_out_on_write_service ||= FanOutOnWriteService.new - end end diff --git a/app/services/process_feed_service.rb b/app/services/process_feed_service.rb index e842031f56a80267f383427c21d519107956bddc..047d0e7475d9466fa866270c7efde604da05934a 100644 --- a/app/services/process_feed_service.rb +++ b/app/services/process_feed_service.rb @@ -38,7 +38,7 @@ class ProcessFeedService < BaseService # If we added a status, go through accounts it mentions and create respective relations unless status.new_record? record_remote_mentions(status, entry.xpath('./xmlns:link[@rel="mentioned"]')) - fan_out_on_write_service.(status) + DistributionWorker.perform_async(status.id) end end diff --git a/app/views/layouts/public.html.haml b/app/views/layouts/public.html.haml index 2234df2250d52446898483451c18a98aca8c69c2..14c37e0dd91540c6c7adad009385d29198419641 100644 --- a/app/views/layouts/public.html.haml +++ b/app/views/layouts/public.html.haml @@ -1,6 +1,10 @@ - content_for :content do .container= yield .footer - .domain= Rails.configuration.x.local_domain + %span.domain= Rails.configuration.x.local_domain + %span.powered-by + \// + powered by + = link_to 'Mastodon', 'https://github.com/Gargron/mastodon' = render template: "layouts/application" diff --git a/app/workers/distribution_worker.rb b/app/workers/distribution_worker.rb new file mode 100644 index 0000000000000000000000000000000000000000..d529ed87fc2978124ddaff1d7d94abd47188c83a --- /dev/null +++ b/app/workers/distribution_worker.rb @@ -0,0 +1,7 @@ +class DistributionWorker + include Sidekiq::Worker + + def perform(status_id) + FanOutOnWriteService.new.(Status.find(status_id)) + end +end