diff --git a/app/controllers/advertisement_hits_controller.rb b/app/controllers/advertisement_hits_controller.rb deleted file mode 100644 index 926304707..000000000 --- a/app/controllers/advertisement_hits_controller.rb +++ /dev/null @@ -1,12 +0,0 @@ -class AdvertisementHitsController < ApplicationController - def create - advertisement = Advertisement.find(params[:advertisement_id]) - advertisement.hits.create(:ip_addr => request.remote_ip) - redirect_to advertisement.referral_url - end - -protected - def set_title - @page_title = Danbooru.config.app_name + "/advertisements" - end -end diff --git a/app/controllers/advertisements_controller.rb b/app/controllers/advertisements_controller.rb deleted file mode 100644 index 5bfc91841..000000000 --- a/app/controllers/advertisements_controller.rb +++ /dev/null @@ -1,58 +0,0 @@ -class AdvertisementsController < ApplicationController - before_filter :advertiser_only - - def new - @advertisement = Advertisement.new( - :ad_type => "vertical", - :status => "active" - ) - end - - def edit - @advertisement = Advertisement.find(params[:id]) - end - - def index - @advertisements = Advertisement.order("id desc") - @start_date = 1.month.ago.to_date - @end_date = Date.today - end - - def show - @advertisement = Advertisement.find(params[:id]) - end - - def create - @advertisement = Advertisement.new(params[:advertisement]) - if @advertisement.save - redirect_to advertisement_path(@advertisement), :notice => "Advertisement created" - else - flash[:notice] = "There were errors" - render :action => "new" - end - end - - def update - @advertisement = Advertisement.find(params[:id]) - if @advertisement.update_attributes(params[:advertisement]) - redirect_to advertisement_path(@advertisement), :notice => "Advertisement updated" - else - flash[:notice] = "There were errors" - render :action => "edit" - end - end - - def destroy - @advertisement = Advertisement.find(params[:id]) - @advertisement.destroy - redirect_to advertisements_path, :notice => "Advertisement destroyed" - end - -private - def advertiser_only - if !Danbooru.config.is_user_advertiser?(CurrentUser.user) - raise User::PrivilegeError - return false - end - end -end diff --git a/app/helpers/advertisements_helper.rb b/app/helpers/advertisements_helper.rb deleted file mode 100644 index 1904c8214..000000000 --- a/app/helpers/advertisements_helper.rb +++ /dev/null @@ -1,35 +0,0 @@ -module AdvertisementsHelper - def render_advertisement(ad_type) - if Danbooru.config.can_see_ads?(CurrentUser.user) - @advertisement = Advertisement.find(:first, :conditions => ["ad_type = ? AND status = 'active'", ad_type], :order => "random()") - if @advertisement - content_tag( - "div", - link_to( - image_tag( - @advertisement.image_url, - :alt => "Advertisement", - :width => @advertisement.width, - :height => @advertisement.height - ), - advertisement_hits_path(:advertisement_id => @advertisement.id), - :method => :post - ), - :style => "margin-bottom: 1em;" - ) - end - else - "" - end - end - - def render_rss_advertisement(short_or_long, safe) - if Danbooru.config.can_see_ads?(CurrentUser.user) - if safe - render "advertisements/jlist_rss_ads_explicit_#{short_or_long}" - else - render "advertisements/jlist_rss_ads_safe_#{short_or_long}" - end - end - end -end diff --git a/app/models/advertisement.rb b/app/models/advertisement.rb deleted file mode 100644 index c6234398d..000000000 --- a/app/models/advertisement.rb +++ /dev/null @@ -1,91 +0,0 @@ -class Advertisement < ActiveRecord::Base - validates_inclusion_of :ad_type, :in => %w(horizontal vertical) - has_many :hits, :class_name => "AdvertisementHit" - after_create :copy_to_servers - after_destroy :delete_from_servers - attr_accessible :ad_type, :width, :height, :referral_url, :status, :file_name, :is_work_safe, :hit_count - - def copy_to_servers - RemoteFileManager.new(image_path).distribute - end - - def delete_from_servers - RemoteFileManager.new(image_path).delete - end - - def hit!(ip_addr) - hits.create(:ip_addr => ip_addr) - end - - def hit_sum(start_date, end_date) - hits.where(["created_at BETWEEN ? AND ?", start_date, end_date]).count - end - - def unique_identifier - @unique_identifier ||= ("%.0f" % (Time.now.to_f * 1_000)) - end - - def image_url - "/images/advertisements/ads-#{date_prefix}/#{file_name}" - end - - def date_prefix - created_at.try(:strftime, "%Y%m%d") - end - - def image_path - "#{Danbooru.config.advertisement_path}/ads-#{date_prefix}/#{file_name}" - end - - def file - nil - end - - def file=(f) - if f.size > 0 - self.file_name = unique_identifier + File.extname(f.original_filename) - FileUtils.mkdir_p(File.dirname(image_path)) - - if f.local_path - FileUtils.cp(f.local_path, image_path) - else - File.open(image_path, 'wb') {|nf| nf.write(f.read)} - end - - File.chmod(0644, image_path) - File.open(image_path, "rb") do |file| - image_size = ImageSpec.new(file) - self.width = image_size.width - self.height = image_size.height - end - - if width > height - self.ad_type = "horizontal" - else - self.ad_type = "vertical" - end - end - end - - def preview_width - if width > 100 || height > 100 - if width < height - ratio = 100.0 / height - return (width * ratio).to_i - else - return 100 - end - end - end - - def preview_height - if width > 100 || height > 100 - if height < width - ratio = 100.0 / width - return (height * ratio).to_i - else - return 100 - end - end - end -end diff --git a/app/models/advertisement_hit.rb b/app/models/advertisement_hit.rb deleted file mode 100644 index e6a04338d..000000000 --- a/app/models/advertisement_hit.rb +++ /dev/null @@ -1,6 +0,0 @@ -class AdvertisementHit < ActiveRecord::Base - belongs_to :advertisement - - scope :between, lambda {|start_date, end_date| where("created_at BETWEEN ? AND ?", start_date, end_date)} - attr_accessible :ip_addr -end diff --git a/app/views/advertisements/_form.html.erb b/app/views/advertisements/_form.html.erb deleted file mode 100644 index 8b20bddf9..000000000 --- a/app/views/advertisements/_form.html.erb +++ /dev/null @@ -1,6 +0,0 @@ -<%= simple_form_for @advertisement, :html => {:multipart => true} do |f| %> - <%= f.input :file, :as => :file %> - <%= f.input :referral_url, :as => :string %> - <%= f.input :status, :collection => %w(active inactive) %> - <%= f.button :submit, "Submit" %> -<% end %> diff --git a/app/views/advertisements/_jlist_rss_ads_explicit_long.html.erb b/app/views/advertisements/_jlist_rss_ads_explicit_long.html.erb deleted file mode 100644 index 1d1b6f9b4..000000000 --- a/app/views/advertisements/_jlist_rss_ads_explicit_long.html.erb +++ /dev/null @@ -1,70 +0,0 @@ -
- - - - - - -
diff --git a/app/views/advertisements/_jlist_rss_ads_explicit_short.html.erb b/app/views/advertisements/_jlist_rss_ads_explicit_short.html.erb deleted file mode 100644 index 36ec8bcb2..000000000 --- a/app/views/advertisements/_jlist_rss_ads_explicit_short.html.erb +++ /dev/null @@ -1,70 +0,0 @@ -
- - - - - - -
diff --git a/app/views/advertisements/_jlist_rss_ads_safe_long.html.erb b/app/views/advertisements/_jlist_rss_ads_safe_long.html.erb deleted file mode 100644 index a7206ebd0..000000000 --- a/app/views/advertisements/_jlist_rss_ads_safe_long.html.erb +++ /dev/null @@ -1,63 +0,0 @@ -
- - - - - - -
diff --git a/app/views/advertisements/_jlist_rss_ads_safe_short.html.erb b/app/views/advertisements/_jlist_rss_ads_safe_short.html.erb deleted file mode 100644 index 213bad3b1..000000000 --- a/app/views/advertisements/_jlist_rss_ads_safe_short.html.erb +++ /dev/null @@ -1,63 +0,0 @@ -
- - - - - - -
diff --git a/app/views/advertisements/_secondary_links.html.erb b/app/views/advertisements/_secondary_links.html.erb deleted file mode 100644 index ef17422d7..000000000 --- a/app/views/advertisements/_secondary_links.html.erb +++ /dev/null @@ -1,11 +0,0 @@ -<% content_for(:secondary_links) do %> - -
  • <%= link_to "Listing", advertisements_path %>
  • -
  • <%= link_to "New", new_advertisement_path %>
  • - <% if @advertisement && !@advertisement.new_record? %> -
  • |
  • -
  • <%= link_to "Edit", edit_advertisement_path(@advertisement) %>
  • -
  • <%= link_to "Show", advertisement_path(@advertisement) %>
  • - <% end %> -
    -<% end %> diff --git a/app/views/advertisements/edit.html.erb b/app/views/advertisements/edit.html.erb deleted file mode 100644 index cadebbd90..000000000 --- a/app/views/advertisements/edit.html.erb +++ /dev/null @@ -1,14 +0,0 @@ -
    -
    -

    Edit Advertisement

    - <%= image_tag(@advertisement.image_url) %> - <%= render "form" %> -
    -
    - -<%= render "secondary_links" %> - -<% content_for(:page_title) do %> - Edit Advertisement - <%= Danbooru.config.app_name %> -<% end %> - diff --git a/app/views/advertisements/index.html.erb b/app/views/advertisements/index.html.erb deleted file mode 100644 index 5d1a6a451..000000000 --- a/app/views/advertisements/index.html.erb +++ /dev/null @@ -1,30 +0,0 @@ -
    -
    -

    Advertisements

    - - - - - - - - - - - <% @advertisements.each do |advertisement| %> - - - - - - <% end %> - -
    Hits
    <%= image_tag(advertisement.image_url, :width => advertisement.preview_width, :height => advertisement.preview_height) %><%= advertisement.hits.between(@start_date, @end_date).count %><%= link_to "Edit", edit_advertisement_path(advertisement) %>
    -
    -
    - -<%= render "secondary_links" %> - -<% content_for(:page_title) do %> - Advertisements - <%= Danbooru.config.app_name %> -<% end %> diff --git a/app/views/advertisements/new.html.erb b/app/views/advertisements/new.html.erb deleted file mode 100644 index 5da23351b..000000000 --- a/app/views/advertisements/new.html.erb +++ /dev/null @@ -1,13 +0,0 @@ -
    -
    -

    New Advertisement

    - <%= error_messages_for :advertisement %> - <%= render "form" %> -
    -
    - -<%= render "secondary_links" %> - -<% content_for(:page_title) do %> - New Advertisement - <%= Danbooru.config.app_name %> -<% end %> diff --git a/app/views/advertisements/show.html.erb b/app/views/advertisements/show.html.erb deleted file mode 100644 index 8d59e384c..000000000 --- a/app/views/advertisements/show.html.erb +++ /dev/null @@ -1,17 +0,0 @@ -
    -
    -

    Advertisement

    - - <%= image_tag(@advertisement.image_url, :width => @advertisement.preview_width, :height => @advertisement.preview_height) %> - - -
    -
    - -<%= render "secondary_links" %> - -<% content_for(:page_title) do %> - Advertisement - <%= Danbooru.config.app_name %> -<% end %> diff --git a/app/views/static/site_map.html.erb b/app/views/static/site_map.html.erb index 1e6ce1e4b..6803d451e 100644 --- a/app/views/static/site_map.html.erb +++ b/app/views/static/site_map.html.erb @@ -130,10 +130,6 @@
  • <%= link_to("Alias & Implication Import", new_admin_alias_and_implication_import_path) %>
  • <%= link_to("Admin Dashboard", admin_dashboard_path) %>
  • <% end %> - - <% if Danbooru.config.is_user_advertiser?(CurrentUser.user) %> -
  • <%= link_to("Advertisements", advertisements_path) %>
  • - <% end %> diff --git a/config/danbooru_default_config.rb b/config/danbooru_default_config.rb index 3adffe542..2d84aecd4 100644 --- a/config/danbooru_default_config.rb +++ b/config/danbooru_default_config.rb @@ -107,11 +107,6 @@ module Danbooru 300 end - # Where the ad banners are stored in the file system - def advertisement_path - nil - end - # List of memcached servers def memcached_servers %w(127.0.0.1:11211) @@ -266,10 +261,6 @@ module Danbooru !user.is_gold? end - def is_user_advertiser?(user) - user.is_admin? - end - def can_user_see_post?(user, post) if is_user_restricted?(user) && is_post_restricted?(post) false diff --git a/config/routes.rb b/config/routes.rb index 39546c755..2af146ac7 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -71,9 +71,6 @@ Rails.application.routes.draw do end end - resources :advertisements do - resources :hits, :controller => "advertisement_hits", :only => [:create] - end resources :artists do member do put :revert diff --git a/lib/tasks/images.rake b/lib/tasks/images.rake index 26daab670..7b93fb0d7 100644 --- a/lib/tasks/images.rake +++ b/lib/tasks/images.rake @@ -104,16 +104,7 @@ namespace :images do upload.generate_resizes(post.file_path) post.distribute_files end - - desc "Finds advertisement images that don't exist" - task :find_missing_ads => :environment do - Advertisement.where("status = 'active'").each do |ad| - if !File.exists?(ad.image_path) - puts ad.image_path - end - end - end - + desc "Generate thumbnail-sized images of posts" task :generate_preview => :environment do Post.where("image_width > ?", Danbooru.config.small_image_width).find_each do |post| diff --git a/script/sanitize.sql b/script/sanitize.sql index 6a937644f..573ba0ab0 100644 --- a/script/sanitize.sql +++ b/script/sanitize.sql @@ -1,5 +1,3 @@ -truncate table advertisement_hits; -truncate table advertisements; update artist_versions set updater_ip_addr = '127.0.0.1'; truncate table bans; truncate table comment_votes; diff --git a/test/factories/advertisement.rb b/test/factories/advertisement.rb deleted file mode 100644 index 5e2b7bec3..000000000 --- a/test/factories/advertisement.rb +++ /dev/null @@ -1,10 +0,0 @@ -FactoryGirl.define do - factory(:advertisement) do - referral_url "http://google.com" - ad_type "vertical" - status "active" - width 728 - height 90 - file_name "google.gif" - end -end diff --git a/test/functional/advertisement_hits_controller_test.rb b/test/functional/advertisement_hits_controller_test.rb deleted file mode 100644 index 7a554268a..000000000 --- a/test/functional/advertisement_hits_controller_test.rb +++ /dev/null @@ -1,17 +0,0 @@ -require 'test_helper' - -class AdvertisementHitsControllerTest < ActionController::TestCase - context "An advertisement hits controller" do - setup do - @ad = FactoryGirl.create(:advertisement) - @advertiser = FactoryGirl.create(:admin_user) - end - - should "create a new hit" do - assert_difference("AdvertisementHit.count", 1) do - post :create, {:advertisement_id => @ad.id} - end - assert_redirected_to(@ad.referral_url) - end - end -end diff --git a/test/functional/advertisements_controller_test.rb b/test/functional/advertisements_controller_test.rb deleted file mode 100644 index 72b2a5d77..000000000 --- a/test/functional/advertisements_controller_test.rb +++ /dev/null @@ -1,58 +0,0 @@ -require 'test_helper' - -class AdvertisementsControllerTest < ActionController::TestCase - context "An advertisement controller" do - setup do - @ad = FactoryGirl.create(:advertisement) - @advertiser = FactoryGirl.create(:admin_user) - end - - should "get the new page" do - get :new, {}, {:user_id => @advertiser.id} - assert_response :success - end - - should "get the edit page" do - get :edit, {:id => @ad.id}, {:user_id => @advertiser.id} - assert_response :success - end - - should "get the index page" do - get :index, {}, {:user_id => @advertiser.id} - assert_response :success - end - - should "get the show page" do - get :show, {:id => @ad.id}, {:user_id => @advertiser.id} - assert_response :success - end - - should "create an ad" do - assert_difference("Advertisement.count", 1) do - post :create, {:advertisement => FactoryGirl.attributes_for(:advertisement)}, {:user_id => @advertiser.id} - end - ad = Advertisement.last - assert_redirected_to(advertisement_path(ad)) - end - - should "update an ad" do - post :update, {:id => @ad.id, :advertisement => {:width => 100}}, {:user_id => @advertiser.id} - ad = Advertisement.last - assert_equal(100, ad.width) - assert_redirected_to(advertisement_path(ad)) - end - - should "delete an ad" do - assert_difference("Advertisement.count", -1) do - post :destroy, {:id => @ad.id}, {:user_id => @advertiser.id} - end - assert_redirected_to(advertisements_path) - end - - should "block non-advertisers" do - regular_user = FactoryGirl.create(:user) - get :index, {}, {:user_id => regular_user.id} - assert_response(403) - end - end -end diff --git a/test/unit/advertisement_test.rb b/test/unit/advertisement_test.rb deleted file mode 100644 index bc429ec74..000000000 --- a/test/unit/advertisement_test.rb +++ /dev/null @@ -1,32 +0,0 @@ -require 'test_helper' -require 'helpers/upload_test_helper' - -class AdvertisementTest < ActiveSupport::TestCase - include UploadTestHelper - - context "An advertisement" do - setup do - Danbooru.config.stubs(:advertisement_path).returns("/tmp") - @ad = FactoryGirl.create(:advertisement, :file => upload_jpeg("#{Rails.root}/test/files/test.jpg")) - end - - teardown do - FileUtils.rm_f(Dir.glob("#{Rails.root}/public/images/advertisements/*.jpg")) - end - - should "create new hit records" do - assert_difference("AdvertisementHit.count") do - @ad.hit!("0.0.0.0") - end - assert_equal("0.0.0.0", AdvertisementHit.first.ip_addr.to_s) - assert_equal(@ad.id, AdvertisementHit.first.advertisement_id) - assert_equal(1, @ad.hit_sum(1.day.ago, 1.day.from_now)) - assert_equal(0, @ad.hit_sum(2.days.ago, 1.day.ago)) - end - - should "know its preview height and preview width" do - assert_equal(100, @ad.preview_width) - assert_equal(67, @ad.preview_height) - end - end -end