Revert "updated formula for #2492"

This reverts commit 04ded35e75.
This commit is contained in:
r888888888
2015-08-14 13:17:03 -07:00
parent fd36a37d52
commit 6a02e4f3f3
3 changed files with 25 additions and 35 deletions

View File

@@ -485,7 +485,7 @@ class User < ActiveRecord::Base
if created_at > 1.week.ago if created_at > 1.week.ago
"cannot upload during your first week of registration" "cannot upload during your first week of registration"
else else
"have reached your upload limit for the day" "can not upload until your pending posts have been approved"
end end
end end
@@ -513,33 +513,22 @@ class User < ActiveRecord::Base
created_at <= 1.week.ago created_at <= 1.week.ago
end end
def base_upload_limit
if created_at >= 1.month.ago
10
elsif created_at >= 2.months.ago
20
elsif created_at >= 3.months.ago
30
elsif created_at >= 4.months.ago
40
else
50
end
end
def upload_limit def upload_limit
@upload_limit ||= begin deleted_count = Post.for_user(id).deleted.where("is_banned = false").count
dcon = [deletion_confidence(120), 15].min pending_count = Post.for_user(id).pending.count
max_count = [(base_upload_limit * (1 - (dcon / 15.0))).ceil, 10].max approved_count = Post.where("is_flagged = false and is_pending = false and is_deleted = false and uploader_id = ?", id).count
uploaded_count = Post.for_user(id).where("created_at >= ?", 24.hours.ago).count
limit = max_count - uploaded_count
if limit < 0 if base_upload_limit.to_i != 0
limit = 0 limit = [base_upload_limit - (deleted_count / 4), 4].max - pending_count
end else
limit = [10 + (approved_count / 10) - (deleted_count / 4), 4].max - pending_count
limit
end end
if limit < 0
limit = 0
end
limit
end end
def tag_query_limit def tag_query_limit
@@ -773,7 +762,7 @@ class User < ActiveRecord::Base
module StatisticsMethods module StatisticsMethods
def deletion_confidence(days = 30) def deletion_confidence(days = 30)
Reports::UserPromotions.deletion_confidence_interval_for(self, days) Reports::UserPromotion.deletion_confidence_interval_for(self, days)
end end
end end

View File

@@ -54,12 +54,17 @@ class UserPresenter
return "none" return "none"
end end
dcon = [user.deletion_confidence(120), 15].min deleted_count = Post.for_user(user.id).deleted.where("is_banned = false").count
multiplier = (1 - (dcon / 15.0)) pending_count = Post.for_user(user.id).pending.count
max_count = [(user.base_upload_limit * multiplier).ceil, 5].max approved_count = Post.where("is_flagged = false and is_pending = false and is_deleted = false and uploader_id = ?", user.id).count
uploaded_count = Post.for_user(user.id).where("created_at >= ?", 24.hours.ago).count
"(#{user.base_upload_limit} * #{'%0.2f' % multiplier}) - #{uploaded_count} = #{user.upload_limit}" if user.base_upload_limit.to_i != 0
string = "max(base:#{user.base_upload_limit} - (deleted:#{deleted_count} / 4), 4) - pending:#{pending_count}"
else
string = "max(10 + (approved:#{approved_count} / 10) - (deleted:#{deleted_count} / 4), 4) - pending:#{pending_count}"
end
"#{string} = #{user.upload_limit}"
end end
def uploads def uploads

View File

@@ -7,10 +7,6 @@
<p>Before uploading, please read the <%= link_to "how to upload guide", wiki_pages_path(:title => "howto:upload") %>.</p> <p>Before uploading, please read the <%= link_to "how to upload guide", wiki_pages_path(:title => "howto:upload") %>.</p>
</div> </div>
<% unless CurrentUser.is_contributor? %>
<p>You can upload <strong><%= pluralize CurrentUser.upload_limit, "more post" %></strong> today.</p>
<% end %>
<% if params[:url].blank? %> <% if params[:url].blank? %>
<div id="bookmarklet-notice"> <div id="bookmarklet-notice">
<p><span style="font-weight: bold;">You should be using Danbooru's official <%= link_to "upload bookmarklet", bookmarklet_path %> to upload!</span> It makes uploading more convenient and does several things for you automatically such as fixing incorrect sources and optionally copying the artist's commentary.</p> <p><span style="font-weight: bold;">You should be using Danbooru's official <%= link_to "upload bookmarklet", bookmarklet_path %> to upload!</span> It makes uploading more convenient and does several things for you automatically such as fixing incorrect sources and optionally copying the artist's commentary.</p>