commit: e528114c53e23c39dd013d39b829ad50f620015b
parent: cf7fbf2c569473e9a984bd3042930f9c5a060a23
Author: Eugen Rochko <eugen@zeonfederated.com>
Date: Tue, 26 Sep 2017 01:06:27 +0200
Follow-up to #4582 and #5027, removing dead code (#5101)
Diffstat:
4 files changed, 7 insertions(+), 63 deletions(-)
diff --git a/app/services/process_mentions_service.rb b/app/services/process_mentions_service.rb
@@ -39,7 +39,7 @@ class ProcessMentionsService < BaseService
if mentioned_account.local?
NotifyService.new.call(mentioned_account, mention)
- elsif mentioned_account.ostatus? && (Rails.configuration.x.use_ostatus_privacy || !status.stream_entry.hidden?)
+ elsif mentioned_account.ostatus? && !status.stream_entry.hidden?
NotificationWorker.perform_async(stream_entry_to_xml(status.stream_entry), status.account_id, mentioned_account.id)
elsif mentioned_account.activitypub?
ActivityPub::DeliveryWorker.perform_async(build_json(mention.status), mention.status.account_id, mentioned_account.inbox_url)
diff --git a/app/workers/pubsubhubbub/distribution_worker.rb b/app/workers/pubsubhubbub/distribution_worker.rb
@@ -6,45 +6,27 @@ class Pubsubhubbub::DistributionWorker
sidekiq_options queue: 'push'
def perform(stream_entry_ids)
- stream_entries = StreamEntry.where(id: stream_entry_ids).includes(:status).reject { |e| e.status.nil? || e.status.direct_visibility? }
+ stream_entries = StreamEntry.where(id: stream_entry_ids).includes(:status).reject { |e| e.status.nil? || e.status.hidden? }
return if stream_entries.empty?
@account = stream_entries.first.account
@subscriptions = active_subscriptions.to_a
- distribute_public!(stream_entries.reject(&:hidden?))
- distribute_hidden!(stream_entries.select(&:hidden?)) if Rails.configuration.x.use_ostatus_privacy
+ distribute_public!(stream_entries)
end
private
def distribute_public!(stream_entries)
- return if stream_entries.empty?
-
@payload = OStatus::AtomSerializer.render(OStatus::AtomSerializer.new.feed(@account, stream_entries))
- Pubsubhubbub::DeliveryWorker.push_bulk(@subscriptions) do |subscription|
- [subscription.id, @payload]
- end
- end
-
- def distribute_hidden!(stream_entries)
- return if stream_entries.empty?
-
- @payload = OStatus::AtomSerializer.render(OStatus::AtomSerializer.new.feed(@account, stream_entries))
- @domains = @account.followers.domains
-
- Pubsubhubbub::DeliveryWorker.push_bulk(@subscriptions.select { |s| allowed_to_receive?(s.callback_url, s.domain) }) do |subscription|
- [subscription.id, @payload]
+ Pubsubhubbub::DeliveryWorker.push_bulk(@subscriptions) do |subscription_id|
+ [subscription_id, @payload]
end
end
def active_subscriptions
- Subscription.where(account: @account).active.select('id, callback_url, domain')
- end
-
- def allowed_to_receive?(callback_url, domain)
- (!domain.nil? && @domains.include?(domain)) || @domains.include?(Addressable::URI.parse(callback_url).host)
+ Subscription.where(account: @account).active.pluck(:id)
end
end
diff --git a/config/initializers/ostatus.rb b/config/initializers/ostatus.rb
@@ -18,7 +18,6 @@ Rails.application.configure do
config.action_mailer.default_url_options = { host: web_host, protocol: https ? 'https://' : 'http://', trailing_slash: false }
config.x.streaming_api_base_url = 'ws://localhost:4000'
- config.x.use_ostatus_privacy = false
if Rails.env.production?
config.x.streaming_api_base_url = ENV.fetch('STREAMING_API_BASE_URL') { "ws#{https ? 's' : ''}://#{web_host}" }
diff --git a/spec/workers/pubsubhubbub/distribution_worker_spec.rb b/spec/workers/pubsubhubbub/distribution_worker_spec.rb
@@ -18,48 +18,11 @@ describe Pubsubhubbub::DistributionWorker do
it 'delivers payload to all subscriptions' do
allow(Pubsubhubbub::DeliveryWorker).to receive(:push_bulk)
subject.perform(status.stream_entry.id)
- expect(Pubsubhubbub::DeliveryWorker).to have_received(:push_bulk).with([anonymous_subscription, subscription_with_follower])
- end
- end
-
- context 'when OStatus privacy is used' do
- around do |example|
- before_val = Rails.configuration.x.use_ostatus_privacy
- Rails.configuration.x.use_ostatus_privacy = true
- example.run
- Rails.configuration.x.use_ostatus_privacy = before_val
- end
-
- describe 'with private status' do
- let(:status) { Fabricate(:status, account: alice, text: 'Hello', visibility: :private) }
-
- it 'delivers payload only to subscriptions with followers' do
- allow(Pubsubhubbub::DeliveryWorker).to receive(:push_bulk)
- subject.perform(status.stream_entry.id)
- expect(Pubsubhubbub::DeliveryWorker).to have_received(:push_bulk).with([subscription_with_follower])
- expect(Pubsubhubbub::DeliveryWorker).to_not have_received(:push_bulk).with([anonymous_subscription])
- end
- end
-
- describe 'with direct status' do
- let(:status) { Fabricate(:status, account: alice, text: 'Hello', visibility: :direct) }
-
- it 'does not deliver payload' do
- allow(Pubsubhubbub::DeliveryWorker).to receive(:push_bulk)
- subject.perform(status.stream_entry.id)
- expect(Pubsubhubbub::DeliveryWorker).to_not have_received(:push_bulk)
- end
+ expect(Pubsubhubbub::DeliveryWorker).to have_received(:push_bulk).with([anonymous_subscription.id, subscription_with_follower.id])
end
end
context 'when OStatus privacy is not used' do
- around do |example|
- before_val = Rails.configuration.x.use_ostatus_privacy
- Rails.configuration.x.use_ostatus_privacy = false
- example.run
- Rails.configuration.x.use_ostatus_privacy = before_val
- end
-
describe 'with private status' do
let(:status) { Fabricate(:status, account: alice, text: 'Hello', visibility: :private) }