diff --git a/app/assets/javascripts/related_tag.js b/app/assets/javascripts/related_tag.js index 38a041d17..bf87c744a 100644 --- a/app/assets/javascripts/related_tag.js +++ b/app/assets/javascripts/related_tag.js @@ -247,7 +247,7 @@ Danbooru.RelatedTag.find_artist = function(e) { $("#artist-tags").html("Loading..."); var url = $("#upload_source,#post_source"); - $.get("/artists.json", {"limit": 20, "search[name]": url.val()}).success(Danbooru.RelatedTag.process_artist); + $.get("/artists/finder.json", {"url": url.val()}).success(Danbooru.RelatedTag.process_artist); e.preventDefault(); } diff --git a/app/controllers/artists_controller.rb b/app/controllers/artists_controller.rb index 1566de8c7..646ee80b0 100644 --- a/app/controllers/artists_controller.rb +++ b/app/controllers/artists_controller.rb @@ -110,4 +110,24 @@ class ArtistsController < ApplicationController redirect_to new_artist_path(:name => params[:name]) end end + + def finder + url = params[:url] + headers = { + "User-Agent" => "#{Danbooru.config.safe_app_name}/#{Danbooru.config.version}" + } + Downloads::Strategies::Base.strategies.each do |strategy| + url, headers = strategy.new.rewrite(url, headers) + end + + @artists = Artist.url_matches(url).order("id desc").limit(20) + respond_with(@artists) do |format| + format.xml do + render :xml => @artists.to_xml(:include => [:urls], :root => "artists") + end + format.json do + render :json => @artists.to_json(:include => [:urls]) + end + end + end end diff --git a/app/views/uploads/new.html.erb b/app/views/uploads/new.html.erb index 552832095..4e9e45cdb 100644 --- a/app/views/uploads/new.html.erb +++ b/app/views/uploads/new.html.erb @@ -16,7 +16,7 @@ <%= error_messages_for "upload" %> - <%= form_for(@upload, :html => {:multipart => true, :class => "simple_form", :id => 'form'}) do |f| %> + <%= form_for(@upload, :html => {:multipart => true, :class => "simple_form", :id => "form"}) do |f| %> <% if CurrentUser.is_contributor? %>