artists: prevent Google from indexing banned artists.
Prevent search engines from indexing artist pages, wiki pages, and tag searches for banned artists.
This commit is contained in:
@@ -362,6 +362,10 @@ module ApplicationHelper
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def noindex
|
||||||
|
content_for(:html_header, tag.meta(name: "robots", content: "noindex"))
|
||||||
|
end
|
||||||
|
|
||||||
def atom_feed_tag(title, url = {})
|
def atom_feed_tag(title, url = {})
|
||||||
content_for(:html_header, auto_discovery_link_tag(:atom, url, title: title))
|
content_for(:html_header, auto_discovery_link_tag(:atom, url, title: title))
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -122,6 +122,7 @@ module PostSets
|
|||||||
|
|
||||||
def hide_from_crawler?
|
def hide_from_crawler?
|
||||||
return true if current_page > 50
|
return true if current_page > 50
|
||||||
|
return true if artist.present? && artist.is_banned?
|
||||||
return false if query.is_empty_search? || query.is_simple_tag? || query.is_metatag?(:order, :rank)
|
return false if query.is_empty_search? || query.is_simple_tag? || query.is_metatag?(:order, :rank)
|
||||||
true
|
true
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
<% noindex if @artist.is_banned? %>
|
||||||
|
|
||||||
<%= render layout: "show" do %>
|
<%= render layout: "show" do %>
|
||||||
<div>
|
<div>
|
||||||
<%= render "summary", artist: @artist %>
|
<%= render "summary", artist: @artist %>
|
||||||
|
|||||||
@@ -14,9 +14,7 @@
|
|||||||
<% canonical_url root_url(host: Danbooru.config.hostname) %>
|
<% canonical_url root_url(host: Danbooru.config.hostname) %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<% if @post_set.hide_from_crawler? %>
|
<% noindex if @post_set.hide_from_crawler? %>
|
||||||
<meta name="robots" content="nofollow,noindex">
|
|
||||||
<% end %>
|
|
||||||
|
|
||||||
<% if @post_set.has_explicit? %>
|
<% if @post_set.has_explicit? %>
|
||||||
<meta name="rating" content="adult">
|
<meta name="rating" content="adult">
|
||||||
|
|||||||
@@ -1,6 +1,10 @@
|
|||||||
<% page_title "#{@wiki_page.pretty_title.titleize} Wiki" %>
|
<% page_title "#{@wiki_page.pretty_title.titleize} Wiki" %>
|
||||||
<% meta_description DText.excerpt(@wiki_page.body) %>
|
<% meta_description DText.excerpt(@wiki_page.body) %>
|
||||||
|
|
||||||
|
<% if @wiki_page.artist.present? && @wiki_page.artist.is_banned? %>
|
||||||
|
<% noindex %>
|
||||||
|
<% end %>
|
||||||
|
|
||||||
<%= render "secondary_links" %>
|
<%= render "secondary_links" %>
|
||||||
<%= render "sidebar" %>
|
<%= render "sidebar" %>
|
||||||
|
|
||||||
|
|||||||
@@ -65,6 +65,14 @@ class ArtistsControllerTest < ActionDispatch::IntegrationTest
|
|||||||
assert_response :success
|
assert_response :success
|
||||||
assert_select ".artist-wiki", count: 0
|
assert_select ".artist-wiki", count: 0
|
||||||
end
|
end
|
||||||
|
|
||||||
|
should "mark banned artists as noindex" do
|
||||||
|
@artist = create(:artist, is_banned: true)
|
||||||
|
get artist_path(@artist.id)
|
||||||
|
|
||||||
|
assert_response :success
|
||||||
|
assert_select "meta[name=robots][content=noindex]"
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
context "new action" do
|
context "new action" do
|
||||||
|
|||||||
@@ -112,6 +112,16 @@ class PostsControllerTest < ActionDispatch::IntegrationTest
|
|||||||
assert_select "#view-artist-link", count: 0
|
assert_select "#view-artist-link", count: 0
|
||||||
end
|
end
|
||||||
|
|
||||||
|
should "render for a banned artist tag" do
|
||||||
|
artist = create(:artist, is_banned: true)
|
||||||
|
create(:post, tag_string: artist.name)
|
||||||
|
get posts_path, params: { tags: artist.name }
|
||||||
|
|
||||||
|
assert_response :success
|
||||||
|
assert_select "#show-excerpt-link", count: 1, text: "Artist"
|
||||||
|
assert_select "meta[name=robots][content=noindex]"
|
||||||
|
end
|
||||||
|
|
||||||
should "render for a tag with a wiki page" do
|
should "render for a tag with a wiki page" do
|
||||||
create(:post, tag_string: "char:fumimi", rating: "s")
|
create(:post, tag_string: "char:fumimi", rating: "s")
|
||||||
get posts_path, params: { tags: "fumimi" }
|
get posts_path, params: { tags: "fumimi" }
|
||||||
|
|||||||
@@ -121,6 +121,14 @@ class WikiPagesControllerTest < ActionDispatch::IntegrationTest
|
|||||||
get wiki_page_path("....xml")
|
get wiki_page_path("....xml")
|
||||||
assert_response :success
|
assert_response :success
|
||||||
end
|
end
|
||||||
|
|
||||||
|
should "mark banned artists as noindex" do
|
||||||
|
@artist = create(:artist, name: @wiki_page.title, is_banned: true)
|
||||||
|
get wiki_page_path(@wiki_page.title)
|
||||||
|
|
||||||
|
assert_response :success
|
||||||
|
assert_select "meta[name=robots][content=noindex]"
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
context "show_or_new action" do
|
context "show_or_new action" do
|
||||||
|
|||||||
Reference in New Issue
Block a user