Browse Source

Force utf-8 encoding when processing XML

closed-social-glitch-2
Eugen Rochko 7 years ago
parent
commit
7ce4670164
4 changed files with 10 additions and 3 deletions
  1. +3
    -1
      app/services/fetch_remote_account_service.rb
  2. +3
    -1
      app/services/fetch_remote_status_service.rb
  3. +1
    -0
      app/services/process_feed_service.rb
  4. +3
    -1
      app/services/process_interaction_service.rb

+ 3
- 1
app/services/fetch_remote_account_service.rb View File

@ -9,7 +9,9 @@ class FetchRemoteAccountService < BaseService
private private
def process_atom(url, body) def process_atom(url, body)
xml = Nokogiri::XML(body)
xml = Nokogiri::XML(body)
xml.encoding = 'utf-8'
url_parts = Addressable::URI.parse(url) url_parts = Addressable::URI.parse(url)
username = xml.at_xpath('//xmlns:author/xmlns:name').try(:content) username = xml.at_xpath('//xmlns:author/xmlns:name').try(:content)
domain = url_parts.host domain = url_parts.host

+ 3
- 1
app/services/fetch_remote_status_service.rb View File

@ -11,7 +11,9 @@ class FetchRemoteStatusService < BaseService
def process_atom(url, body) def process_atom(url, body)
Rails.logger.debug "Processing Atom for remote status at #{url}" 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) account = extract_author(url, xml)
return nil if account.nil? return nil if account.nil?

+ 1
- 0
app/services/process_feed_service.rb View File

@ -4,6 +4,7 @@ class ProcessFeedService < BaseService
def call(body, account) def call(body, account)
xml = Nokogiri::XML(body) xml = Nokogiri::XML(body)
xml.encoding = 'utf-8'
update_author(xml, account) update_author(xml, account)
process_entries(xml, account) process_entries(xml, account)

+ 3
- 1
app/services/process_interaction_service.rb View File

@ -6,7 +6,9 @@ class ProcessInteractionService < BaseService
# @param [Account] target_account Account the Salmon was addressed to # @param [Account] target_account Account the Salmon was addressed to
def call(envelope, target_account) def call(envelope, target_account)
body = salmon.unpack(envelope) body = salmon.unpack(envelope)
xml = Nokogiri::XML(body)
xml = Nokogiri::XML(body)
xml.encoding = 'utf-8'
return unless contains_author?(xml) return unless contains_author?(xml)

Loading…
Cancel
Save