#
# Table name: users
#
-# email :string not null
-# id :bigint(8) not null, primary key
-# pass_crypt :string not null
-# creation_time :datetime not null
-# display_name :string default(""), not null
-# data_public :boolean default(FALSE), not null
-# description :text default(""), not null
-# home_lat :float
-# home_lon :float
-# home_zoom :integer default(3)
-# pass_salt :string
-# email_valid :boolean default(FALSE), not null
-# new_email :string
-# creation_ip :string
-# languages :string
-# status :enum default("pending"), not null
-# terms_agreed :datetime
-# consider_pd :boolean default(FALSE), not null
-# auth_uid :string
-# preferred_editor :string
-# terms_seen :boolean default(FALSE), not null
-# description_format :enum default("markdown"), not null
-# changesets_count :integer default(0), not null
-# traces_count :integer default(0), not null
-# diary_entries_count :integer default(0), not null
-# image_use_gravatar :boolean default(FALSE), not null
-# auth_provider :string
-# home_tile :bigint(8)
-# tou_agreed :datetime
+# email :string not null
+# id :bigint(8) not null, primary key
+# pass_crypt :string not null
+# creation_time :datetime not null
+# display_name :string default(""), not null
+# data_public :boolean default(FALSE), not null
+# description :text default(""), not null
+# home_lat :float
+# home_lon :float
+# home_zoom :integer default(3)
+# pass_salt :string
+# email_valid :boolean default(FALSE), not null
+# new_email :string
+# creation_ip :string
+# languages :string
+# status :enum default("pending"), not null
+# terms_agreed :datetime
+# consider_pd :boolean default(FALSE), not null
+# auth_uid :string
+# preferred_editor :string
+# terms_seen :boolean default(FALSE), not null
+# description_format :enum default("markdown"), not null
+# changesets_count :integer default(0), not null
+# traces_count :integer default(0), not null
+# diary_entries_count :integer default(0), not null
+# image_use_gravatar :boolean default(FALSE), not null
+# auth_provider :string
+# home_tile :bigint(8)
+# tou_agreed :datetime
+# diary_comments_count :integer default(0)
+# note_comments_count :integer default(0)
#
# Indexes
#
def max_messages_per_hour
account_age_in_seconds = Time.now.utc - created_at
account_age_in_hours = account_age_in_seconds / 3600
- recent_messages = messages.where("sent_on >= ?", Time.now.utc - 3600).count
+ recent_messages = messages.where(:sent_on => Time.now.utc - 3600..).count
max_messages = account_age_in_hours.ceil + recent_messages - (active_reports * 10)
max_messages.clamp(0, Settings.max_messages_per_hour)
end
def max_friends_per_hour
account_age_in_seconds = Time.now.utc - created_at
account_age_in_hours = account_age_in_seconds / 3600
- recent_friends = Friendship.where(:befriendee => self).where("created_at >= ?", Time.now.utc - 3600).count
+ recent_friends = Friendship.where(:befriendee => self).where(:created_at => Time.now.utc - 3600..).count
max_friends = account_age_in_hours.ceil + recent_friends - (active_reports * 10)
max_friends.clamp(0, Settings.max_friends_per_hour)
end