diff options
Diffstat (limited to 'app')
-rw-r--r-- | app/models/account.rb | 5 | ||||
-rw-r--r-- | app/services/post_status_service.rb | 1 | ||||
-rw-r--r-- | app/services/reblog_service.rb | 1 |
3 files changed, 7 insertions, 0 deletions
diff --git a/app/models/account.rb b/app/models/account.rb index f1ac6fdd7..e9fc03a10 100644 --- a/app/models/account.rb +++ b/app/models/account.rb @@ -65,6 +65,11 @@ class Account < ActiveRecord::Base @subscription ||= OStatus2::Subscription.new(self.remote_url, secret: self.secret, token: self.verify_token, webhook: webhook_url, hub: self.hub_url) end + def ping!(atom_url, hubs) + return unless local? + OStatus2::Publication.new(atom_url, hubs).publish + end + def avatar_remote_url=(url) self.avatar = URI.parse(url) @avatar_remote_url = url diff --git a/app/services/post_status_service.rb b/app/services/post_status_service.rb index 17cc8e323..64519a400 100644 --- a/app/services/post_status_service.rb +++ b/app/services/post_status_service.rb @@ -7,6 +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) + account.ping!(atom_user_stream_url(id: account.id), HUB_URL) status end diff --git a/app/services/reblog_service.rb b/app/services/reblog_service.rb index 000ed8ee6..66b7634fb 100644 --- a/app/services/reblog_service.rb +++ b/app/services/reblog_service.rb @@ -5,6 +5,7 @@ class ReblogService < BaseService # @return [Status] def call(account, reblogged_status) reblog = account.statuses.create!(reblog: reblogged_status, text: '') + account.ping!(atom_user_stream_url(id: account.id), HUB_URL) return reblog if reblogged_status.local? send_interaction_service.(reblog.stream_entry, reblogged_status.account) reblog |