def webfinger
@account = Account.find_by!(username: username_from_resource, domain: nil)
- @canonical_account_uri = "acct:#{@account.username}@#{LOCAL_DOMAIN}"
+ @canonical_account_uri = "acct:#{@account.username}@#{Rails.configuration.x.local_domain}"
@magic_key = pem_to_magic_key(@account.keypair.public_key)
rescue ActiveRecord::RecordNotFound
render nothing: true, status: 404
module ApplicationHelper
def unique_tag(date, id, type)
- "tag:#{LOCAL_DOMAIN},#{date.strftime('%Y-%m-%d')}:objectId=#{id}:objectType=#{type}"
+ "tag:#{Rails.configuration.x.local_domain},#{date.strftime('%Y-%m-%d')}:objectId=#{id}:objectType=#{type}"
end
def unique_tag_to_local_id(tag, expected_type)
end
def local_id?(id)
- id.start_with?("tag:#{LOCAL_DOMAIN}")
+ id.start_with?("tag:#{Rails.configuration.x.local_domain}")
end
end
follow = source_account.follow!(target_account)
send_interaction_service.(follow.stream_entry, target_account)
- source_account.ping!(account_url(account, format: 'atom'), [HUB_URL])
+ source_account.ping!(account_url(account, format: 'atom'), [Rails.configuration.x.hub_url])
end
private
def call(account, text, in_reply_to = nil)
status = account.statuses.create!(text: text, thread: in_reply_to)
process_mentions_service.(status)
- account.ping!(account_url(account, format: 'atom'), [HUB_URL])
+ account.ping!(account_url(account, format: 'atom'), [Rails.configuration.x.hub_url])
status
end
href = Addressable::URI.parse(mention_link.attribute('href').value)
- if href.host == LOCAL_DOMAIN
+ if href.host == Rails.configuration.x.local_domain
mentioned_account = Account.find_by(username: href.path.gsub('/users/', ''), domain: nil)
unless mentioned_account.nil?
# @return [Status]
def call(account, reblogged_status)
reblog = account.statuses.create!(reblog: reblogged_status, text: '')
- account.ping!(account_url(account, format: 'atom'), [HUB_URL])
+ account.ping!(account_url(account, format: 'atom'), [Rails.configuration.x.hub_url])
return reblog if reblogged_status.local?
send_interaction_service.(reblog.stream_entry, reblogged_status.account)
reblog
link_alternate xml, url_for_target(@account)
link_self xml, account_url(@account, format: 'atom')
- link_hub xml, HUB_URL
+ link_hub xml, Rails.configuration.x.hub_url
link_salmon xml, api_salmon_url(@account.id)
@account.stream_entries.order('id desc').each do |stream_entry|
Nokogiri::XML::Builder.new do |xml|
entry(xml, true) do
author(xml) do
- include_author xml, @entry.account
+ include_author xml, @stream_entry.account
end
- include_entry xml, @entry
+ include_entry xml, @stream_entry
end
end.to_xml
-LOCAL_DOMAIN = ENV['LOCAL_DOMAIN'] || 'localhost'
-HUB_URL = ENV['HUB_URL'] || 'https://pubsubhubbub.superfeedr.com'
-CANONICAL_PROTOCOL = ENV['LOCAL_HTTPS'] == 'true' ? 'https://' : 'http://'
-
Rails.application.configure do
- config.action_mailer.default_url_options = { host: LOCAL_DOMAIN, protocol: CANONICAL_PROTOCOL }
+ config.x.local_domain = ENV['LOCAL_DOMAIN'] || 'localhost'
+ config.x.hub_url = ENV['HUB_URL'] || 'https://pubsubhubbub.superfeedr.com'
+ config.x.use_https = ENV['LOCAL_HTTPS'] == 'true'
+
+ config.action_mailer.default_url_options = { host: config.x.local_domain, protocol: config.x.use_https ? 'https://' : 'http://' }
end
let(:local_domain) { 'local.tld' }
before do
- stub_const('LOCAL_DOMAIN', local_domain)
+ Rails.configuration.x.local_domain = local_domain
end
describe '#unique_tag' do
subject { ReblogService.new }
before do
- stub_const('HUB_URL', 'http://hub.example.com')
+ Rails.configuration.x.hub_url = 'http://hub.example.com'
stub_request(:post, 'http://hub.example.com')
stub_request(:post, 'http://salmon.example.com')