refactor site_updated, add initial site file tracking

This commit is contained in:
Kyle Drake 2014-10-27 16:34:06 -07:00
parent f50b3a23d9
commit 05807e2f39
7 changed files with 44 additions and 10 deletions

15
app.rb
View file

@ -463,9 +463,9 @@ def browse_sites_dataset
case params[:sort_by]
when 'hits'
site_dataset.order!(:hits.desc, :updated_at.desc)
site_dataset.order!(:hits.desc, :site_updated_at.desc)
when 'views'
site_dataset.order!(:views.desc, :updated_at.desc)
site_dataset.order!(:views.desc, :site_updated_at.desc)
when 'newest'
site_dataset.order!(:created_at.desc, :views.desc)
when 'oldest'
@ -474,14 +474,14 @@ def browse_sites_dataset
site_dataset.where! 'random() < 0.01'
when 'last_updated'
params[:sort_by] = 'last_updated'
site_dataset.order!(:updated_at.desc, :views.desc)
site_dataset.order!(:site_updated_at.desc, :views.desc)
else
if params[:tag]
params[:sort_by] = 'views'
site_dataset.order!(:views.desc, :updated_at.desc)
site_dataset.order!(:views.desc, :site_updated_at.desc)
else
params[:sort_by] = 'last_updated'
site_dataset.order!(:updated_at.desc, :views.desc)
site_dataset.order!(:site_updated_at.desc, :views.desc)
end
end
@ -591,8 +591,7 @@ post '/create' do
password: params[:password],
email: params[:email],
new_tags_string: params[:tags],
ip: request.ip,
created_at: Time.now
ip: request.ip
)
black_box_answered = BlackBox.valid? params[:blackbox_answer], request.ip
@ -1376,7 +1375,7 @@ def api_info_for(site)
views: site.views,
hits: site.hits,
created_at: site.created_at.rfc2822,
last_updated: site.updated_at.rfc2822,
last_updated: site.site_updated_at ? site.site_updated_at.rfc2822 : nil,
domain: site.domain,
tags: site.tags.collect {|t| t.name}
}

View file

@ -89,7 +89,7 @@ Sequel.extension :migration
Sequel::Model.plugin :validation_helpers
Sequel::Model.plugin :force_encoding, 'UTF-8'
Sequel::Model.plugin :defaults_setter
Sequel::Model.plugin :timestamps, create: :created_at, update: :DONT_UPDATE
Sequel::Model.plugin :create_timestamp
Sequel.default_timezone = 'UTC'
Sequel::Migrator.apply DB, './migrations'

View file

@ -0,0 +1,8 @@
module Sequel::Plugins::CreateTimestamp
module InstanceMethods
def before_create
self.created_at = Time.now if respond_to?(:created_at) && !self.created_at
super
end
end
end

View file

@ -0,0 +1,17 @@
Sequel.migration do
up {
DB.create_table! :site_files do
Integer :site_id, index: true
String :path
Bigint :size
String :sha1_hash
Boolean :is_directory, default: false
DateTime :created_at
DateTime :updated_at
end
}
down {
DB.drop_table :site_files
}
end

View file

@ -0,0 +1,9 @@
Sequel.migration do
up {
DB.add_column :sites, :site_updated_at, DateTime, index: true
}
down {
DB.drop_column :sites, :site_updated_at
}
end

View file

@ -492,6 +492,8 @@ class Site < Sequel::Model
end
self.site_changed = true
self.site_updated_at = Time.now
self.updated_at = Time.now
save_changes(validate: false)
end
@ -536,7 +538,6 @@ class Site < Sequel::Model
def increment_changed_count
self.changed_count += 1
self.updated_at = Time.now
save_changes(validate: false)
end