end
def resolve_thread(status)
- return unless status.reply? && status.thread.nil?
+ return unless status.reply? && status.thread.nil? && Request.valid_url?(in_reply_to_uri)
ThreadResolveWorker.perform_async(status.id, in_reply_to_uri)
end
save_emojis(status)
end
- if thread? && status.thread.nil?
+ if thread? && status.thread.nil? && Request.valid_url?(thread.second)
Rails.logger.debug "Trying to attach #{status.id} (#{id}) to #{thread.first}"
ThreadResolveWorker.perform_async(status.id, thread.second)
end
(@account ? @headers.merge('Signature' => signature) : @headers).without(REQUEST_TARGET)
end
+ class << self
+ def valid_url?(url)
+ begin
+ parsed_url = Addressable::URI.parse(url)
+ rescue Addressable::URI::InvalidURIError
+ return false
+ end
+
+ %w(http https).include?(parsed_url.scheme) && parsed_url.host.present?
+ end
+ end
+
private
def set_common_headers!