commit: 7ce46701646ddaee3f6a44a364a417c493cc4eb4
parent: 50d3083cbddf410e9024fb59559c46e9390a5662
Author: Eugen Rochko <eugen@zeonfederated.com>
Date: Sun, 13 Nov 2016 19:12:40 +0100
Force utf-8 encoding when processing XML
Diffstat:
4 files changed, 10 insertions(+), 3 deletions(-)
diff --git a/app/services/fetch_remote_account_service.rb b/app/services/fetch_remote_account_service.rb
@@ -9,7 +9,9 @@ class FetchRemoteAccountService < BaseService
private
def process_atom(url, body)
- xml = Nokogiri::XML(body)
+ xml = Nokogiri::XML(body)
+ xml.encoding = 'utf-8'
+
url_parts = Addressable::URI.parse(url)
username = xml.at_xpath('//xmlns:author/xmlns:name').try(:content)
domain = url_parts.host
diff --git a/app/services/fetch_remote_status_service.rb b/app/services/fetch_remote_status_service.rb
@@ -11,7 +11,9 @@ class FetchRemoteStatusService < BaseService
def process_atom(url, body)
Rails.logger.debug "Processing Atom for remote status at #{url}"
- xml = Nokogiri::XML(body)
+ xml = Nokogiri::XML(body)
+ xml.encoding = 'utf-8'
+
account = extract_author(url, xml)
return nil if account.nil?
diff --git a/app/services/process_feed_service.rb b/app/services/process_feed_service.rb
@@ -4,6 +4,7 @@ class ProcessFeedService < BaseService
def call(body, account)
xml = Nokogiri::XML(body)
+ xml.encoding = 'utf-8'
update_author(xml, account)
process_entries(xml, account)
diff --git a/app/services/process_interaction_service.rb b/app/services/process_interaction_service.rb
@@ -6,7 +6,9 @@ class ProcessInteractionService < BaseService
# @param [Account] target_account Account the Salmon was addressed to
def call(envelope, target_account)
body = salmon.unpack(envelope)
- xml = Nokogiri::XML(body)
+
+ xml = Nokogiri::XML(body)
+ xml.encoding = 'utf-8'
return unless contains_author?(xml)