Rewrite Atom generation from stream entries to use Ox instead of Nokogiri (#1124)
* Rewrite Atom generation from stream entries to use Ox instead of Nokogiri::Builder StreamEntry is now limited to only statuses, which allows some optimization. Removed extra queries on AccountsController#show. AtomSerializer instead of AtomBuilderHelper used in AccountsController#show, StreamEntriesController#show, StreamEntryRenderer and PubSubHubbub::DistributionWorker PubSubHubbub::DistributionWorker moves n+1 DomainBlock query to PubSubHubbub::DeliveryWorker instead. All Salmon slaps that aren't based on StreamEntry still use AtomBuilderHelper and Nokogiri * All Salmon slaps now use Ox instead of Nokogiri. No touch from status on account
This commit is contained in:
parent
31597fd377
commit
6d6a429af8
21 changed files with 393 additions and 262 deletions
|
@ -10,7 +10,7 @@ class FollowService < BaseService
|
|||
target_account = FollowRemoteAccountService.new.call(uri)
|
||||
|
||||
raise ActiveRecord::RecordNotFound if target_account.nil? || target_account.id == source_account.id || target_account.suspended?
|
||||
raise Mastodon::NotPermittedError if target_account.blocking?(source_account) || source_account.blocking?(target_account)
|
||||
raise Mastodon::NotPermittedError if target_account.blocking?(source_account) || source_account.blocking?(target_account)
|
||||
|
||||
if target_account.locked?
|
||||
request_follow(source_account, target_account)
|
||||
|
@ -55,48 +55,10 @@ class FollowService < BaseService
|
|||
end
|
||||
|
||||
def build_follow_request_xml(follow_request)
|
||||
description = "#{follow_request.account.acct} requested to follow #{follow_request.target_account.acct}"
|
||||
|
||||
Nokogiri::XML::Builder.new do |xml|
|
||||
entry(xml, true) do
|
||||
unique_id xml, follow_request.created_at, follow_request.id, 'FollowRequest'
|
||||
title xml, description
|
||||
content xml, description
|
||||
|
||||
author(xml) do
|
||||
include_author xml, follow_request.account
|
||||
end
|
||||
|
||||
object_type xml, :activity
|
||||
verb xml, :request_friend
|
||||
|
||||
target(xml) do
|
||||
include_author xml, follow_request.target_account
|
||||
end
|
||||
end
|
||||
end.to_xml
|
||||
AtomSerializer.render(AtomSerializer.new.follow_request_salmon(follow_request))
|
||||
end
|
||||
|
||||
def build_follow_xml(follow)
|
||||
description = "#{follow.account.acct} started following #{follow.target_account.acct}"
|
||||
|
||||
Nokogiri::XML::Builder.new do |xml|
|
||||
entry(xml, true) do
|
||||
unique_id xml, follow.created_at, follow.id, 'Follow'
|
||||
title xml, description
|
||||
content xml, description
|
||||
|
||||
author(xml) do
|
||||
include_author xml, follow.account
|
||||
end
|
||||
|
||||
object_type xml, :activity
|
||||
verb xml, :follow
|
||||
|
||||
target(xml) do
|
||||
include_author xml, follow.target_account
|
||||
end
|
||||
end
|
||||
end.to_xml
|
||||
AtomSerializer.render(AtomSerializer.new.follow_salmon(follow))
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue