@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
Reference in New Issue
Block a user