From fdd158d86ae19f44d0ba8c2d0ef9f481a1f4557b Mon Sep 17 00:00:00 2001 From: Raphael Sofaer <raphael@joindiaspora.com> Date: Mon, 21 Mar 2011 18:42:36 -0700 Subject: [PATCH] Make urls not change on processing --- app/models/photo.rb | 20 ++++++-------------- app/models/user.rb | 1 - app/uploaders/processed_image.rb | 2 +- app/uploaders/unprocessed_image.rb | 8 ++++++-- spec/models/photo_spec.rb | 3 --- spec/models/user_spec.rb | 4 ---- 6 files changed, 13 insertions(+), 25 deletions(-) diff --git a/app/models/photo.rb b/app/models/photo.rb index 0cfb47b132..bbab524031 100644 --- a/app/models/photo.rb +++ b/app/models/photo.rb @@ -33,8 +33,9 @@ class Photo < Post def self.diaspora_initialize(params = {}) photo = super(params) image_file = params.delete(:user_file) - photo.random_string = gen_random_string(10) + photo.random_string = ActiveSupport::SecureRandom.hex(10) photo.unprocessed_image.store! image_file + photo.update_remote_path photo end @@ -47,12 +48,12 @@ class Photo < Post end def update_remote_path - unless self.processed_image.url.match(/^https?:\/\//) + unless self.unprocessed_image.url.match(/^https?:\/\//) pod_url = AppConfig[:pod_url].dup pod_url.chop! if AppConfig[:pod_url][-1,1] == '/' - remote_path = "#{pod_url}#{self.processed_image.url}" + remote_path = "#{pod_url}#{self.unprocessed_image.url}" else - remote_path = self.processed_image.url + remote_path = self.unprocessed_image.url end name_start = remote_path.rindex '/' @@ -77,7 +78,7 @@ class Photo < Post name = name.to_s + '_' if name remote_photo_path + name.to_s + remote_photo_name elsif not_processed? - unprocessed_image.url + unprocessed_image.url(name) else processed_image.url(name) end @@ -102,7 +103,6 @@ class Photo < Post def process return false if unprocessed_image.path.include?('.gif') || self.processed? processed_image.store!(unprocessed_image) #Ultra naive - update_remote_path save! end @@ -110,14 +110,6 @@ class Photo < Post true end - def self.gen_random_string(len) - chars = ("a".."z").to_a + ("A".."Z").to_a + ("0".."9").to_a - string = "" - 1.upto(len) { |i| string << chars[rand(chars.size-1)] } - return string - end - - def as_json(opts={}) { :photo => { diff --git a/app/models/user.rb b/app/models/user.rb index bf75d81a13..f5a16d92c2 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -226,7 +226,6 @@ class User < ActiveRecord::Base def update_profile(params) if photo = params.delete(:photo) photo.update_attributes(:pending => false) if photo.pending - photo.process params[:image_url] = photo.url(:thumb_large) params[:image_url_medium] = photo.url(:thumb_medium) params[:image_url_small] = photo.url(:thumb_small) diff --git a/app/uploaders/processed_image.rb b/app/uploaders/processed_image.rb index fb0478c80f..a2e8c3658f 100644 --- a/app/uploaders/processed_image.rb +++ b/app/uploaders/processed_image.rb @@ -14,7 +14,7 @@ class ProcessedImage < CarrierWave::Uploader::Base end def filename - model.random_string + model.id.to_s + File.extname(@filename) if @filename + model.random_string + File.extname(@filename) if @filename end version :thumb_small do diff --git a/app/uploaders/unprocessed_image.rb b/app/uploaders/unprocessed_image.rb index ab43a3d070..5792412531 100644 --- a/app/uploaders/unprocessed_image.rb +++ b/app/uploaders/unprocessed_image.rb @@ -6,7 +6,7 @@ class UnprocessedImage < CarrierWave::Uploader::Base include CarrierWave::MiniMagick def store_dir - "uploads/u_images" + "uploads/images" end def extension_white_list @@ -14,7 +14,11 @@ class UnprocessedImage < CarrierWave::Uploader::Base end def filename - model.random_string + model.id.to_s + File.extname(@filename) if @filename + model.random_string + File.extname(@filename) if @filename end + version :thumb_small + version :thumb_medium + version :thumb_large + version :scaled_full end diff --git a/spec/models/photo_spec.rb b/spec/models/photo_spec.rb index d8219ddac8..a1b18ccb36 100644 --- a/spec/models/photo_spec.rb +++ b/spec/models/photo_spec.rb @@ -75,9 +75,6 @@ describe Photo do @photo.save! end it 'sets a remote url' do - @photo.remote_photo_path.should be_nil - @photo.remote_photo_name.should be_nil - @photo.update_remote_path @photo.remote_photo_path.should include("http") diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb index a9daff2a96..95fd1d6bf6 100644 --- a/spec/models/user_spec.rb +++ b/spec/models/user_spec.rb @@ -300,10 +300,6 @@ describe User do alice.update_profile(@params).should be true @photo.reload.pending.should be_false end - it 'post-processes the photo' do - @photo.should_receive(:process) - alice.update_profile(@params).should be true - end end end -- GitLab