logo

mastofe

My custom branche(s) on git.pleroma.social/pleroma/mastofe
commit: 8fada4fae25592e24f709faff41b0dedf6d5e36f
parent: ad5ae3f60e5e0745912bfbc0926f6cf8bc6e9eb4
Author: Eugen Rochko <eugen@zeonfederated.com>
Date:   Sun, 28 Feb 2016 14:33:13 +0100

When posting a status or reblogging one, ping hubs about the feed update

Diffstat:

Mapp/models/account.rb5+++++
Mapp/services/post_status_service.rb1+
Mapp/services/reblog_service.rb1+
Mspec/models/account_spec.rb4++++
4 files changed, 11 insertions(+), 0 deletions(-)

diff --git 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 @@ -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 @@ -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 @@ -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