mirror of
https://github.com/neocities/neocities.git
synced 2025-04-24 17:22:35 +02:00
remove double-change count, and only increment for actual changes
This commit is contained in:
parent
da9d1e4eb3
commit
7eee0f062d
4 changed files with 22 additions and 10 deletions
2
Gemfile
2
Gemfile
|
@ -2,7 +2,7 @@ source 'https://rubygems.org'
|
||||||
|
|
||||||
gem 'sinatra'
|
gem 'sinatra'
|
||||||
gem 'redis'
|
gem 'redis'
|
||||||
gem 'sequel'
|
gem 'sequel', '4.8.0'
|
||||||
gem 'slim'
|
gem 'slim'
|
||||||
gem 'bcrypt'
|
gem 'bcrypt'
|
||||||
gem 'sinatra-flash', require: 'sinatra/flash'
|
gem 'sinatra-flash', require: 'sinatra/flash'
|
||||||
|
|
|
@ -134,6 +134,7 @@ GEM
|
||||||
rmagick (2.13.2)
|
rmagick (2.13.2)
|
||||||
rubyzip (1.1.2)
|
rubyzip (1.1.2)
|
||||||
safe_yaml (1.0.1)
|
safe_yaml (1.0.1)
|
||||||
|
sass (3.3.8)
|
||||||
screencap (0.1.1)
|
screencap (0.1.1)
|
||||||
phantomjs
|
phantomjs
|
||||||
sequel (4.8.0)
|
sequel (4.8.0)
|
||||||
|
@ -225,7 +226,7 @@ DEPENDENCIES
|
||||||
rubyzip
|
rubyzip
|
||||||
sass
|
sass
|
||||||
screencap
|
screencap
|
||||||
sequel
|
sequel (= 4.8.0)
|
||||||
sequel_pg
|
sequel_pg
|
||||||
shotgun
|
shotgun
|
||||||
sidekiq
|
sidekiq
|
||||||
|
|
10
app.rb
10
app.rb
|
@ -512,11 +512,12 @@ post '/site_files/upload' do
|
||||||
file_upload_response "File(s) do not fit in your available space, upload cancelled."
|
file_upload_response "File(s) do not fit in your available space, upload cancelled."
|
||||||
end
|
end
|
||||||
|
|
||||||
|
results = []
|
||||||
params[:files].each do |file|
|
params[:files].each do |file|
|
||||||
current_site.store_file Site.sanitize_filename(file[:filename]), file[:tempfile]
|
results << current_site.store_file(Site.sanitize_filename(file[:filename]), file[:tempfile])
|
||||||
end
|
end
|
||||||
|
|
||||||
current_site.increment_changed_count
|
current_site.increment_changed_count if results.include?(true)
|
||||||
|
|
||||||
file_upload_response
|
file_upload_response
|
||||||
end
|
end
|
||||||
|
@ -810,11 +811,12 @@ post '/api/upload' do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
results = []
|
||||||
files.each do |file|
|
files.each do |file|
|
||||||
current_site.store_file file[:filename], file[:tempfile]
|
results << current_site.store_file(file[:filename], file[:tempfile])
|
||||||
end
|
end
|
||||||
|
|
||||||
current_site.increment_changed_count
|
current_site.increment_changed_count if results.include?(true)
|
||||||
|
|
||||||
api_success 'your file(s) have been successfully uploaded'
|
api_success 'your file(s) have been successfully uploaded'
|
||||||
end
|
end
|
||||||
|
|
|
@ -213,6 +213,12 @@ class Site < Sequel::Model
|
||||||
end
|
end
|
||||||
|
|
||||||
def store_file(filename, uploaded)
|
def store_file(filename, uploaded)
|
||||||
|
# If the uploaded file matches an existing file, no actual change has happened.
|
||||||
|
if File.exist?(file_path(filename)) &&
|
||||||
|
Digest::SHA2.file(file_path(filename)).digest == Digest::SHA2.file(uploaded.path).digest
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
FileUtils.mv uploaded.path, file_path(filename)
|
FileUtils.mv uploaded.path, file_path(filename)
|
||||||
File.chmod(0640, file_path(filename))
|
File.chmod(0640, file_path(filename))
|
||||||
|
|
||||||
|
@ -226,15 +232,18 @@ class Site < Sequel::Model
|
||||||
|
|
||||||
SiteChange.record self, filename
|
SiteChange.record self, filename
|
||||||
|
|
||||||
self.site_changed = true
|
if self.site_changed != true
|
||||||
self.changed_count += 1
|
self.site_changed = true
|
||||||
save(validate: false)
|
save_changes(validate: false)
|
||||||
|
end
|
||||||
|
|
||||||
|
true
|
||||||
end
|
end
|
||||||
|
|
||||||
def increment_changed_count
|
def increment_changed_count
|
||||||
self.changed_count += 1
|
self.changed_count += 1
|
||||||
self.updated_at = Time.now
|
self.updated_at = Time.now
|
||||||
save(validate: false)
|
save_changes(validate: false)
|
||||||
end
|
end
|
||||||
|
|
||||||
def files_zip
|
def files_zip
|
||||||
|
|
Loading…
Add table
Reference in a new issue