Patch more missing thumbnail/screenshot change events, cache purges

This commit is contained in:
Kyle Drake 2020-01-27 18:56:43 -08:00
parent 2055ddc78b
commit b2b38b90b9
3 changed files with 35 additions and 9 deletions

View file

@ -64,6 +64,7 @@ post '/settings/:username/change_name' do
require_login
require_ownership_for_settings
old_site = Site[username: @site.username]
old_username = @site.username
if params[:name] == nil || params[:name] == ''
@ -87,9 +88,10 @@ post '/settings/:username/change_name' do
@site.move_files_from old_username
}
old_site_file_paths.each do |site_file_path|
@site.delete_cache site_file_path
end
old_site.delete_all_thumbnails_and_screenshots
old_site.delete_all_cache
@site.delete_all_cache
@site.regenerate_thumbnails_and_screenshots
flash[:success] = "Site/user name has been changed. You will need to use this name to login, <b>don't forget it!</b>"
redirect "/settings/#{@site.username}#username"

View file

@ -524,9 +524,7 @@ class Site < Sequel::Model
save validate: false
destroy
site_files.each do |site_file|
delete_cache site_file.path
end
delete_all_cache
end
def ban_all_sites_on_account!
@ -736,6 +734,12 @@ class Site < Sequel::Model
end
end
def delete_all_cache
site_files.each do |site_file|
delete_cache site_file.path
end
end
def delete_cache(path)
purge_cache path
end
@ -1716,7 +1720,23 @@ class Site < Sequel::Model
regenerate_thumbnails
end
def generate_screenshot_or_thumbnail(path, screenshot_delay=0)
def delete_all_thumbnails_and_screenshots
site_files.each do |sf|
delete_thumbnail_or_screenshot sf.path
end
end
def delete_thumbnail_or_screenshot(path)
extname = File.extname path
if extname.match HTML_REGEX
screenshots_delete path
elsif extname.match IMAGE_REGEX
thumbnails_delete path
end
end
def generate_thumbnail_or_screenshot(path, screenshot_delay=0)
extname = File.extname path
if extname.match HTML_REGEX
@ -1778,7 +1798,7 @@ class Site < Sequel::Model
site_file.save
purge_cache path
generate_screenshot_or_thumbnail relative_path, SCREENSHOT_DELAY_SECONDS
generate_thumbnail_or_screenshot relative_path, SCREENSHOT_DELAY_SECONDS
true
end

View file

@ -61,6 +61,8 @@ class SiteFile < Sequel::Model
begin
FileUtils.mv site.files_path(path), site.files_path(new_path)
site.delete_thumbnail_or_screenshot current_path
site.generate_thumbnail_or_screenshot new_path
rescue Errno::ENOENT => e
return false, 'destination directory does not exist' if e.message =~ /No such file or directory/i
raise e
@ -80,8 +82,10 @@ class SiteFile < Sequel::Model
original_site_file_path = site_file.path
site_file.path = site_file.path.gsub(/^#{current_path}\//, "#{new_path}\/")
site_file.save_changes
site.purge_cache original_site_file_path
site.delete_thumbnail_or_screenshot original_site_file_path
site.generate_thumbnail_or_screenshot site_file.path
site.purge_cache site_file.path
site.purge_cache original_site_file_path
end
end
end