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 {
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
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
# 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
- 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"
--- /dev/null
+class DistributionWorker
+ include Sidekiq::Worker
+
+ def perform(status_id)
+ FanOutOnWriteService.new.(Status.find(status_id))
+ end
+end