removed small image support

This commit is contained in:
albert
2012-03-13 18:28:32 -04:00
parent 938541c98f
commit 7269ec0076
27 changed files with 17 additions and 205 deletions

View File

@@ -9,7 +9,7 @@ group :test do
end
group :assets do
gem "sass-rails", "~> 3.2.3"
gem "sass-rails"
gem "uglifier", ">= 1.0.3"
gem "therubyracer"
end
@@ -24,7 +24,6 @@ gem "simple_form"
gem "mechanize", git: 'git://github.com/caribio/mechanize.git'
gem "nokogiri"
gem "meta_search", :git => "git://github.com/ernie/meta_search.git"
gem "silent-postgres"
gem "whenever", :require => false
gem "sanitize", :git => "git://github.com/rgrove/sanitize.git"
gem 'rmagick', :require => "RMagick"

View File

@@ -145,7 +145,6 @@ GEM
shoulda-matchers (~> 1.0.0)
shoulda-context (1.0.0)
shoulda-matchers (1.0.0)
silent-postgres (0.1.1)
simple_form (2.0.1)
actionpack (~> 3.0)
activemodel (~> 3.0)
@@ -200,9 +199,8 @@ DEPENDENCIES
rails (= 3.2.2)
rmagick
sanitize!
sass-rails (~> 3.2.3)
sass-rails
shoulda
silent-postgres
simple_form
simplecov
super_exception_notifier

View File

@@ -96,12 +96,9 @@
Danbooru.Post.initialize_image_resize = function() {
var default_image_size = Danbooru.meta("default-image-size");
var original_width = parseInt($("#image").data("original-width"));
var medium_width = parseInt(Danbooru.meta("config-medium-width"));
var large_width = parseInt(Danbooru.meta("config-large-width"));
if ((default_image_size === "medium") && (original_width > medium_width)) {
$("#medium-file-link").trigger("click");
} else if ((default_image_size === "large") && (original_width > large_width)) {
if ((default_image_size === "large") && (original_width > large_width)) {
$("#large-file-link").trigger("click");
} else {
$("#original-file-link").trigger("click");
@@ -113,7 +110,6 @@
Danbooru.Note.Box.descale_all();
var $link = $(e.target);
var $image = $("#image");
$("#medium-file-link").removeClass("active");
$("#large-file-link").removeClass("active");
$("#original-file-link").removeClass("active");
$link.addClass("active");
@@ -126,7 +122,6 @@
}
Danbooru.Post.initialize_post_image_resize_links = function() {
$("#medium-file-link").click(Danbooru.Post.build_resize_function("medium"));
$("#large-file-link").click(Danbooru.Post.build_resize_function("large"));
$("#original-file-link").click(Danbooru.Post.build_resize_function("original"));
}

View File

@@ -2,15 +2,11 @@ module PostsHelper
def resize_image_links(post, user)
links = []
if post.has_medium?
links << link_to("M", post.medium_file_url, :id => "medium-file-link")
end
if post.has_large?
links << link_to("L", post.large_file_url, :id => "large-file-link")
end
if post.has_medium? || post.has_large?
if post.has_large?
links << link_to("O", post.file_url, :id => "original-file-link")
end

View File

@@ -105,7 +105,7 @@ class AnonymousUser
end
def default_image_size
"medium"
"large"
end
def blacklisted_tags

View File

@@ -1,29 +0,0 @@
class PopularPostExplorer
attr_reader :col1, :col2, :posts
def initialize
load_posts
sort_posts
end
private
def load_posts
Post.tag_match("order:rank").where("image_width >= ?", Danbooru.config.medium_image_width).limit(5).offset(offset)
end
def sort_posts
height1, height2 = 0, 0
@col1, @col2 = [], []
posts.each do |post|
if height1 > height2
@col2 << post
height2 += post.medium_image_height
else
@col1 << post
height1 += post.medium_image_height
end
end
end
end

View File

@@ -28,10 +28,6 @@ class AmazonBackup < ActiveRecord::Base
AWS::S3::S3Object.store("preview/#{post.md5}.jpg", open(post.preview_file_path, "rb"), Danbooru.config.amazon_s3_bucket_name)
end
if File.exists?(post.medium_file_path)
AWS::S3::S3Object.store("medium/#{post.md5}.jpg", open(post.medium_file_path, "rb"), Danbooru.config.amazon_s3_bucket_name)
end
if File.exists?(post.large_file_path)
AWS::S3::S3Object.store("large/#{post.md5}.jpg", open(post.large_file_path, "rb"), Danbooru.config.amazon_s3_bucket_name)
end

View File

@@ -1,6 +1,6 @@
class ForumTopic < ActiveRecord::Base
attr_accessible :title, :original_post_attributes, :as => [:member, :privileged, :contributor, :janitor, :moderator, :admin, :default]
attr_accessible :is_sticky, :is_locked, :is_deleted, :as => [:admin, :moderator]
attr_accessible :is_sticky, :is_locked, :is_deleted, :as => [:janitor, :admin, :moderator]
belongs_to :creator, :class_name => "User"
belongs_to :updater, :class_name => "User"
has_many :posts, :class_name => "ForumPost", :order => "forum_posts.id asc", :foreign_key => "topic_id", :dependent => :destroy

View File

@@ -12,7 +12,8 @@ class Pool < ActiveRecord::Base
before_validation :initialize_creator, :on => :create
after_save :create_version
before_destroy :create_mod_action_for_destroy
attr_accessible :name, :description, :post_ids, :post_id_array, :is_active, :post_count
attr_accessible :name, :description, :post_ids, :post_id_array, :post_count, :as => [:member, :privileged, :contributor, :janitor, :moderator, :admin, :default]
attr_accessible :is_active, :as => [:janitor, :moderator, :admin]
scope :active, where("is_active = true")
def self.name_to_id(name)

View File

@@ -68,7 +68,6 @@ class Post < ActiveRecord::Base
RemoteFileManager.new(file_path).distribute
RemoteFileManager.new(real_preview_file_path).distribute
RemoteFileManager.new(ssd_preview_file_path).distribute if Danbooru.config.ssd_path
RemoteFileManager.new(medium_file_path).distribute if has_medium?
RemoteFileManager.new(large_file_path).distribute if has_large?
end
@@ -76,13 +75,11 @@ class Post < ActiveRecord::Base
RemoteFileManager.new(file_path).delete
RemoteFileManager.new(real_preview_file_path).delete
RemoteFileManager.new(ssd_preview_file_path).delete if Danbooru.config.ssd_path
RemoteFileManager.new(medium_file_path).delete if has_medium?
RemoteFileManager.new(large_file_path).delete if has_large?
end
def delete_files
FileUtils.rm_f(file_path)
FileUtils.rm_f(medium_file_path)
FileUtils.rm_f(large_file_path)
FileUtils.rm_f(ssd_preview_file_path) if Danbooru.config.ssd_path
FileUtils.rm_f(real_preview_file_path)
@@ -96,14 +93,6 @@ class Post < ActiveRecord::Base
"#{Rails.root}/public/data/original/#{file_path_prefix}#{md5}.#{file_ext}"
end
def medium_file_path
if has_medium?
"#{Rails.root}/public/data/medium/#{file_path_prefix}#{md5}.jpg"
else
file_path
end
end
def large_file_path
if has_large?
"#{Rails.root}/public/data/large/#{file_path_prefix}#{md5}.jpg"
@@ -132,23 +121,11 @@ class Post < ActiveRecord::Base
"/data/original/#{file_path_prefix}#{md5}.#{file_ext}"
end
def medium_file_url
if has_medium?
if is_flash?
"/data/preview/480x200-flash.png"
else
"/data/medium/#{file_path_prefix}#{md5}.jpg"
end
else
file_url
end
end
def large_file_url
if has_large?
"/data/large/#{file_path_prefix}#{md5}.jpg"
else
medium_file_url
file_url
end
end
@@ -166,13 +143,6 @@ class Post < ActiveRecord::Base
def file_url_for(user)
case user.default_image_size
when "medium"
if image_width > Danbooru.config.medium_image_width
medium_file_url
else
file_url
end
when "large"
if image_width > Danbooru.config.large_image_width
large_file_url
@@ -187,13 +157,6 @@ class Post < ActiveRecord::Base
def file_path_for(user)
case user.default_image_size
when "medium"
if image_width > Danbooru.config.medium_image_width
medium_file_path
else
file_path
end
when "large"
if image_width > Danbooru.config.large_image_width
large_file_path
@@ -216,35 +179,14 @@ class Post < ActiveRecord::Base
end
module ImageMethods
def has_medium?
image_width > Danbooru.config.medium_image_width
end
def has_large?
image_width > Danbooru.config.large_image_width
end
def medium_image_width
[Danbooru.config.medium_image_width, image_width].min
end
def large_image_width
[Danbooru.config.large_image_width, image_width].min
end
def medium_image_height
if is_flash?
return 200
end
ratio = Danbooru.config.medium_image_width.to_f / image_width.to_f
if ratio < 1
(image_height * ratio).to_i
else
image_height
end
end
def large_image_height
ratio = Danbooru.config.large_image_width.to_f / image_width.to_f
if ratio < 1
@@ -256,9 +198,6 @@ class Post < ActiveRecord::Base
def image_width_for(user)
case user.default_image_size
when "medium"
medium_image_width
when "large"
large_image_width
@@ -269,9 +208,6 @@ class Post < ActiveRecord::Base
def image_height_for(user)
case user.default_image_size
when "medium"
medium_image_height
when "large"
large_image_height

View File

@@ -134,7 +134,6 @@ class Upload < ActiveRecord::Base
def generate_resizes(source_path)
if is_image?
generate_resize_for(Danbooru.config.small_image_width, Danbooru.config.small_image_width, source_path, 85)
generate_resize_for(Danbooru.config.medium_image_width, nil, source_path) if image_width > Danbooru.config.medium_image_width
generate_resize_for(Danbooru.config.large_image_width, nil, source_path) if image_width > Danbooru.config.large_image_width
end
end
@@ -220,9 +219,6 @@ class Upload < ActiveRecord::Base
when Danbooru.config.small_image_width
"#{Rails.root}/public/data/preview/#{prefix}#{md5}.jpg"
when Danbooru.config.medium_image_width
"#{Rails.root}/public/data/medium/#{prefix}#{md5}.jpg"
when Danbooru.config.large_image_width
"#{Rails.root}/public/data/large/#{prefix}#{md5}.jpg"
end

View File

@@ -21,7 +21,7 @@ class User < ActiveRecord::Base
validates_uniqueness_of :name, :case_sensitive => false
validates_uniqueness_of :email, :case_sensitive => false, :if => lambda {|rec| rec.email.present?}
validates_length_of :password, :minimum => 5, :if => lambda {|rec| rec.new_record? || rec.password.present?}
validates_inclusion_of :default_image_size, :in => %w(medium large original)
validates_inclusion_of :default_image_size, :in => %w(large original)
validates_confirmation_of :password
validates_presence_of :email, :if => lambda {|rec| rec.new_record? && Danbooru.config.enable_email_verification?}
validates_presence_of :comment_threshold
@@ -432,7 +432,7 @@ class User < ActiveRecord::Base
include ApiMethods
def initialize_default_image_size
self.default_image_size = "Medium"
self.default_image_size = "large"
end
def can_update?(object, foreign_key = :user_id)

View File

@@ -47,13 +47,6 @@ class PostPresenter < Presenter
PostPresenter.preview(@post)
end
def medium_image_html(template, options = {})
return "" if @post.is_deleted? && !CurrentUser.user.is_janitor?
return "" if !Danbooru.config.can_user_see_post?(CurrentUser.user, @post)
template.render("posts/partials/show/medium_image", :post => @post)
end
def image_html(template)
return template.content_tag("p", "This image was deleted.") if @post.is_deleted? && !CurrentUser.user.is_janitor?
return template.content_tag("p", "You need a privileged account to see this image.") if !Danbooru.config.can_user_see_post?(CurrentUser.user, @post)

View File

@@ -1 +0,0 @@
<div class="landing-post"><a href="<%= post_path(post) %>"><img src="<%= post.medium_file_url %>" width="<%= post.medium_image_width %>" height="<%= post.medium_image_height %>"><div class="data"><p><%= post.essential_tag_string.tr("_", " ") %></p></div></a></div>

View File

@@ -1,8 +0,0 @@
<!--
- tag
-->
<div>
<% @explorer.search(tag, 300).each do |post| %>
<%= post.presenter.medium_image_html(self, :max_height => 300) %>
<% end %>
</div>

View File

@@ -1,24 +0,0 @@
<% cache(:expires_in => 1.hour) do %>
<div id="c-landings">
<div id="a-show">
<h1><%= link_to Danbooru.config.app_name, posts_path %></h1>
<p class="slogan">Find good art fast</p>
<div class="column">
<% @explorer.col1.each do |post| %>
<%= render "image", :post => post %>
<% end %>
</div>
<div class="column">
<% @explorer.col2.each do |post| %>
<%= render "image", :post => post %>
<% end %>
</div>
</div>
</div>
<% end %>
<% content_for(:page_title) do %>
<%= Danbooru.config.app_name %>
<% end %>

View File

@@ -27,13 +27,7 @@
<% @posts.each do |post| %>
<article id="post-<%= post.id %>">
<aside>
<% if post.is_image? %>
<%= link_to(image_tag(post.medium_file_url), post_path(post)) %>
<% elsif post.is_flash? %>
<div class="text-post-medium">Flash</div>
<% else %>
<div class="text-post-medium">Download</div>
<% end %>
<%= link_to(image_tag(post.preview_file_url), post_path(post)) %>
</aside>
<section>

View File

@@ -1 +1 @@
<%= 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-medium-width" => post.medium_image_width, "data-medium-height" => post.medium_image_height, "data-large-width" => post.large_image_width, "data-large-height" => post.large_image_height) %>
<%= 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) %>

View File

@@ -87,7 +87,6 @@
<meta name="post-is-approvable" content="<%= @post.is_approvable? %>">
<meta name="post-is-deleted" content="<%= @post.is_deleted? %>">
<meta name="post-is-flagged" content="<%= @post.is_flagged? %>">
<meta name="config-medium-width" content="<%= Danbooru.config.medium_image_width %>">
<meta name="config-large-width" content="<%= Danbooru.config.large_image_width %>">
<% end %>

View File

@@ -12,7 +12,7 @@
<%= f.input :time_zone %>
<%= f.input :receive_email_notifications %>
<%= f.input :comment_threshold, :hint => "Comments below this score will be hidden by default" %>
<%= f.input :default_image_size, :hint => "Medium shows images resized to #{Danbooru.config.medium_image_width} pixels wide, large is #{Danbooru.config.large_image_width} pixels wide, and original is whatever the original image is", :collection => %w(medium large original), :include_blank => false %>
<%= f.input :default_image_size, :hint => "Large is #{Danbooru.config.large_image_width} pixels wide, and original is whatever the original image is", :collection => %w(large original), :include_blank => false %>
<%= f.input :favorite_tags, :hint => "A list of whitespace delimited tags that show up in your profile", :input_html => {:size => "40x5"} %>
<%= f.input :blacklisted_tags, :hint => "A list of newline delimited tags that you never want to see", :input_html => {:size => "40x5"} %>
</fieldset>

View File

@@ -68,11 +68,6 @@ module Danbooru
150
end
# Medium resize image width. Set to nil to disable.
def medium_image_width
480
end
# Large resize image width. Set to nil to disable.
def large_image_width
960

View File

@@ -44,7 +44,6 @@ namespace :data do
task :setup_directories do
run "mkdir -p #{deploy_to}/shared/data"
run "mkdir #{deploy_to}/shared/data/preview"
run "mkdir #{deploy_to}/shared/data/medium"
run "mkdir #{deploy_to}/shared/data/large"
run "mkdir #{deploy_to}/shared/data/original"
end

View File

@@ -1450,7 +1450,7 @@ CREATE TABLE users (
receive_email_notifications boolean DEFAULT false NOT NULL,
comment_threshold integer DEFAULT (-1) NOT NULL,
always_resize_images boolean DEFAULT false NOT NULL,
default_image_size character varying(255) DEFAULT 'medium'::character varying NOT NULL,
default_image_size character varying(255) DEFAULT 'large'::character varying NOT NULL,
favorite_tags text,
blacklisted_tags text,
time_zone character varying(255) DEFAULT 'Eastern Time (US & Canada)'::character varying NOT NULL

View File

@@ -11,16 +11,6 @@ namespace :images do
end
end
desc "Generate medium-sized images of posts"
task :generate_medium => :environment do
Post.where("image_width > ?", Danbooru.config.medium_image_width).find_each do |post|
if post.is_image?
puts "resizing medium #{post.id}"
Danbooru.resize(post.file_path, post.medium_file_path, Danbooru.config.medium_image_width, nil, 90)
end
end
end
desc "Generate large-sized images of posts"
task :generate_large => :environment do
Post.where("image_width > ?", Danbooru.config.large_image_width).find_each do |post|
@@ -31,16 +21,6 @@ namespace :images do
end
end
desc "Distribute medium posts to other servers"
task :distribute_medium => :environment do
Post.where("image_width > ?", Danbooru.config.medium_image_width).find_each do |post|
if post.is_image?
puts "distributing medium #{post.id}"
RemoteFileManager.new(post.medium_file_path).distribute
end
end
end
desc "Distribute large posts to other servers"
task :distribute_large => :environment do
Post.where("image_width > ?", Danbooru.config.large_image_width).find_each do |post|

View File

@@ -3150,7 +3150,7 @@ alter table users rename column invited_by to inviter_id;
alter table users rename column last_forum_topic_read_at to last_forum_read_at;
alter table users rename column receive_dmails to receive_email_notifications;
alter table users add column is_banned boolean not null default false;
alter table users add column default_image_size varchar(255) not null default 'medium';
alter table users add column default_image_size varchar(255) not null default 'large';
alter table users add column favorite_tags text;
alter table users add column blacklisted_tags text;
alter table users add column time_zone varchar(255) not null default 'Eastern Time (US & Canada)';

View File

@@ -3,7 +3,7 @@ Factory.define(:user) do |f|
f.password "password"
f.password_hash {User.sha1("password")}
f.email {Faker::Internet.email}
f.default_image_size "medium"
f.default_image_size "large"
f.base_upload_limit 10
f.level 20
f.last_logged_in_at {Time.now}

View File

@@ -110,7 +110,6 @@ class UploadTest < ActiveSupport::TestCase
context "resizer" do
teardown do
FileUtils.rm_f(Dir.glob("#{Rails.root}/public/data/preview/test.*.jpg"))
FileUtils.rm_f(Dir.glob("#{Rails.root}/public/data/medium/test.*.jpg"))
FileUtils.rm_f(Dir.glob("#{Rails.root}/public/data/large/test.*.jpg"))
FileUtils.rm_f(Dir.glob("#{Rails.root}/public/data/original/test.*.jpg"))
end
@@ -122,8 +121,6 @@ class UploadTest < ActiveSupport::TestCase
assert_nothing_raised {@upload.generate_resizes(@upload.file_path)}
assert(File.exists?(@upload.resized_file_path_for(Danbooru.config.small_image_width)))
assert_equal(10639, File.size(@upload.resized_file_path_for(Danbooru.config.small_image_width)))
assert(File.exists?(@upload.resized_file_path_for(Danbooru.config.medium_image_width)))
assert_equal(43470, File.size(@upload.resized_file_path_for(Danbooru.config.medium_image_width)))
assert(File.exists?(@upload.resized_file_path_for(Danbooru.config.large_image_width)))
assert_equal(129472, File.size(@upload.resized_file_path_for(Danbooru.config.large_image_width)))
end