Fix #690 - Webfinger should handle new shortform profile URLs now (nice)

This commit is contained in:
Eugen Rochko 2017-03-28 11:23:33 +02:00
parent 448a07cc3f
commit 1c6b02f936
3 changed files with 9 additions and 6 deletions

View file

@ -36,11 +36,14 @@ class XrdController < ApplicationController
end
def username_from_resource
if resource_param.start_with?('acct:') || resource_param.include?('@')
resource_param.split('@').first.gsub('acct:', '')
if resource_param =~ /\Ahttps?:\/\//
path_params = Rails.application.routes.recognize_path(resource_param)
raise ActiveRecord::RecordNotFound unless path_params[:controller] == 'users' && path_params[:action] == 'show'
path_params[:username]
else
url = Addressable::URI.parse(resource_param)
url.path.gsub('/users/', '')
username, domain = resource_param.gsub(/\Aacct:/, '').split('@')
raise ActiveRecord::RecordNotFound unless TagManager.instance.local_domain?(domain)
username
end
end

View file

@ -1,6 +1,6 @@
object @account
attributes :id, :username, :acct, :display_name, :locked
attributes :id, :username, :acct, :display_name, :locked, :created_at
node(:note) { |account| Formatter.instance.simplified_format(account) }
node(:url) { |account| TagManager.instance.url_for(account) }