From 22bd07072ae6fc77b59358bc9620e68dcb191a13 Mon Sep 17 00:00:00 2001 From: r888888888 Date: Thu, 18 Jul 2013 17:26:52 -0700 Subject: [PATCH] #1849: filter images for safebooru --- app/models/post.rb | 11 +++++++---- app/presenters/post_presenter.rb | 7 ++----- app/views/comments/index_by_comment.html.erb | 4 +++- app/views/comments/index_by_post.html.erb | 4 +++- app/views/comments/show.html.erb | 4 +++- app/views/posts/partials/show/_image.html.erb | 5 +++-- 6 files changed, 21 insertions(+), 14 deletions(-) diff --git a/app/models/post.rb b/app/models/post.rb index 430bbc3b4..86ed69975 100644 --- a/app/models/post.rb +++ b/app/models/post.rb @@ -1032,10 +1032,6 @@ class Post < ActiveRecord::Base where("is_deleted = ?", true) end - def visible(user) - Danbooru.config.can_user_see_post_conditions(user) - end - def commented_before(date) where("last_commented_at < ?", date).order("last_commented_at DESC") end @@ -1151,6 +1147,13 @@ class Post < ActiveRecord::Base extend SearchMethods include PixivMethods + def visible? + return false if !Danbooru.config.can_user_see_post?(CurrentUser.user, self) + return false if CurrentUser.safe_mode? && rating != "s" + return false if is_banned? && !CurrentUser.is_gold? + return true + end + def reload(options = nil) super reset_tag_array_cache diff --git a/app/presenters/post_presenter.rb b/app/presenters/post_presenter.rb index 46e739173..74ad40f02 100644 --- a/app/presenters/post_presenter.rb +++ b/app/presenters/post_presenter.rb @@ -3,12 +3,8 @@ class PostPresenter < Presenter if post.is_deleted? && options[:tags] !~ /status:(?:all|any|deleted|banned)/ && !options[:raw] return "" end - - if post.is_banned? && !CurrentUser.is_gold? - return "" - end - unless Danbooru.config.can_user_see_post?(CurrentUser.user, post) + if !post.visible? return "" end @@ -138,6 +134,7 @@ class PostPresenter < Presenter def image_html(template) return template.content_tag("p", "The artist requested removal of this image") if @post.is_banned? && !CurrentUser.user.is_gold? return template.content_tag("p", template.link_to("You need a gold account to see this image.", template.upgrade_information_users_path)) if !Danbooru.config.can_user_see_post?(CurrentUser.user, @post) + return template.content_tag("p", "This image is unavailable") if !@post.visible? if @post.is_flash? template.render("posts/partials/show/flash", :post => @post) diff --git a/app/views/comments/index_by_comment.html.erb b/app/views/comments/index_by_comment.html.erb index ddd2d7af0..4fc834eee 100644 --- a/app/views/comments/index_by_comment.html.erb +++ b/app/views/comments/index_by_comment.html.erb @@ -7,7 +7,9 @@ <% @comments.each do |comment| %>
>
- <%= link_to(image_tag(comment.post.preview_file_url), post_path(comment.post)) %> + <% if comment.post.visible? %> + <%= link_to(image_tag(comment.post.preview_file_url), post_path(comment.post)) %> + <% end %>
<%= render :partial => "comments/partials/show/comment", :collection => [comment] %>
diff --git a/app/views/comments/index_by_post.html.erb b/app/views/comments/index_by_post.html.erb index 0fadcbf52..e268fb45b 100644 --- a/app/views/comments/index_by_post.html.erb +++ b/app/views/comments/index_by_post.html.erb @@ -9,7 +9,9 @@ <% @posts.select {|x| Danbooru.config.can_user_see_post?(CurrentUser.user, x)}.each do |post| %>
>
- <%= link_to(image_tag(post.preview_file_url), post_path(post)) %> + <% if post.visible? %> + <%= link_to(image_tag(post.preview_file_url), post_path(post)) %> + <% end %>
<%= render "comments/partials/index/list", :post => post, :comments => post.comments.visible(CurrentUser.user).recent.reverse, :show_header => true %>
diff --git a/app/views/comments/show.html.erb b/app/views/comments/show.html.erb index ea44acf37..a2a227d86 100644 --- a/app/views/comments/show.html.erb +++ b/app/views/comments/show.html.erb @@ -4,7 +4,9 @@
- <%= link_to(image_tag(@comment.post.preview_file_url), post_path(@comment.post)) %> + <% if @comment.post.visible? %> + <%= link_to(image_tag(@comment.post.preview_file_url), post_path(@comment.post)) %> + <% end %>
<%= render :partial => "comments/partials/show/comment", :collection => [@comment] %>
diff --git a/app/views/posts/partials/show/_image.html.erb b/app/views/posts/partials/show/_image.html.erb index 79f482a98..7ad50225e 100644 --- a/app/views/posts/partials/show/_image.html.erb +++ b/app/views/posts/partials/show/_image.html.erb @@ -1,2 +1,3 @@ -<%= image_tag(post.file_url_for(CurrentUser.user), :width => post.image_width_for(CurrentUser.user), :height => post.image_height_for(CurrentUser.user), :id => "image", "data-original-width" => post.image_width, "data-original-height" => post.image_height, "data-large-width" => post.large_image_width, "data-large-height" => post.large_image_height, "data-tags" => post.tag_string, "data-uploader" => post.uploader_name, "data-rating" => post.rating, "data-flags" => post.status_flags, "data-parent-id" => post.parent_id, "data-has-children" => post.has_children?, "data-score" => post.score, "data-fav-count" => post.fav_count) %> - +<% if post.visible? %> + <%= image_tag(post.file_url_for(CurrentUser.user), :width => post.image_width_for(CurrentUser.user), :height => post.image_height_for(CurrentUser.user), :id => "image", "data-original-width" => post.image_width, "data-original-height" => post.image_height, "data-large-width" => post.large_image_width, "data-large-height" => post.large_image_height, "data-tags" => post.tag_string, "data-uploader" => post.uploader_name, "data-rating" => post.rating, "data-flags" => post.status_flags, "data-parent-id" => post.parent_id, "data-has-children" => post.has_children?, "data-score" => post.score, "data-fav-count" => post.fav_count) %> +<% end %>