Do not run FetchLinkCardService on local URLs, increase file size limit to 8MB,
fix ProcessFeedService pushing status into distribution if called a second time while the first is still running (i.e. when a PuSH comes after a Salmon slap), fix not running escape on spoiler text before emojify
This commit is contained in:
parent
9f57c7d4a6
commit
450ad43180
5 changed files with 21 additions and 13 deletions
|
@ -42,13 +42,14 @@ class ProcessFeedService < BaseService
|
|||
|
||||
def create_status
|
||||
Rails.logger.debug "Creating remote status #{id}"
|
||||
status = status_from_xml(@xml)
|
||||
status, just_created = status_from_xml(@xml)
|
||||
|
||||
return if status.nil?
|
||||
return status unless just_created
|
||||
|
||||
if verb == :share
|
||||
original_status = status_from_xml(@xml.at_xpath('.//activity:object', activity: TagManager::AS_XMLNS))
|
||||
status.reblog = original_status
|
||||
original_status, = status_from_xml(@xml.at_xpath('.//activity:object', activity: TagManager::AS_XMLNS))
|
||||
status.reblog = original_status
|
||||
|
||||
if original_status.nil?
|
||||
status.destroy
|
||||
|
@ -61,7 +62,6 @@ class ProcessFeedService < BaseService
|
|||
status.save!
|
||||
|
||||
NotifyService.new.call(status.reblog.account, status) if status.reblog? && status.reblog.account.local?
|
||||
# LinkCrawlWorker.perform_async(status.reblog? ? status.reblog_of_id : status.id)
|
||||
Rails.logger.debug "Queuing remote status #{status.id} (#{id}) for distribution"
|
||||
DistributionWorker.perform_async(status.id)
|
||||
status
|
||||
|
@ -81,22 +81,23 @@ class ProcessFeedService < BaseService
|
|||
def status_from_xml(entry)
|
||||
# Return early if status already exists in db
|
||||
status = find_status(id(entry))
|
||||
return status unless status.nil?
|
||||
|
||||
return [status, false] unless status.nil?
|
||||
|
||||
# If status embeds an author, find that author
|
||||
# If that author cannot be found, don't record the status (do not misattribute)
|
||||
if account?(entry)
|
||||
begin
|
||||
account = find_or_resolve_account(acct(entry))
|
||||
return nil if account.nil?
|
||||
return [nil, false] if account.nil?
|
||||
rescue Goldfinger::Error
|
||||
return nil
|
||||
return [nil, false]
|
||||
end
|
||||
else
|
||||
account = @account
|
||||
end
|
||||
|
||||
return if account.suspended?
|
||||
return [nil, false] if account.suspended?
|
||||
|
||||
status = Status.create!(
|
||||
uri: id(entry),
|
||||
|
@ -116,7 +117,7 @@ class ProcessFeedService < BaseService
|
|||
hashtags_from_xml(status, entry)
|
||||
media_from_xml(status, entry)
|
||||
|
||||
status
|
||||
[status, true]
|
||||
end
|
||||
|
||||
def find_or_resolve_account(acct)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue