about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--app/models/account.rb5
-rw-r--r--app/services/post_status_service.rb1
-rw-r--r--app/services/reblog_service.rb1
-rw-r--r--spec/models/account_spec.rb4
4 files changed, 11 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
diff --git a/spec/models/account_spec.rb b/spec/models/account_spec.rb
index a5f24a990..562989335 100644
--- a/spec/models/account_spec.rb
+++ b/spec/models/account_spec.rb
@@ -107,4 +107,8 @@ RSpec.describe Account, type: :model do
       expect(subject.content).to eql subject.note
     end
   end
+
+  describe '#ping!' do
+    pending
+  end
 end