From 3a9a6c665851aa15981350259736fd06cc3fdb24 Mon Sep 17 00:00:00 2001 From: Toks Date: Wed, 25 Dec 2013 12:43:54 -0500 Subject: [PATCH] #1866: Normalize urls in artist finder --- app/assets/javascripts/related_tag.js | 2 +- app/controllers/artists_controller.rb | 20 ++++++++++++++++++++ app/views/uploads/new.html.erb | 2 +- config/routes.rb | 1 + 4 files changed, 23 insertions(+), 2 deletions(-) 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? %>