mirror of
https://github.com/neocities/neocities.git
synced 2025-08-02 07:41:52 +02:00
Ability to get zipball of entire site
This commit is contained in:
parent
9ed826486d
commit
a4c31d4618
5 changed files with 41 additions and 5 deletions
25
app.rb
25
app.rb
|
@ -148,6 +148,27 @@ post '/site_files/delete' do
|
|||
redirect '/dashboard'
|
||||
end
|
||||
|
||||
get '/site_files/:username.zip' do |username|
|
||||
file_path = "/tmp/neocities-site-#{username}.zip"
|
||||
|
||||
Zip::ZipFile.open(file_path, Zip::ZipFile::CREATE) do |zipfile|
|
||||
current_site.file_list.collect {|f| f.filename}.each do |filename|
|
||||
puts filename
|
||||
puts site_file_path(filename)
|
||||
zipfile.add filename, site_file_path(filename)
|
||||
end
|
||||
end
|
||||
|
||||
# I don't want to have to deal with cleaning up old tmpfiles
|
||||
zipfile = File.read file_path
|
||||
File.delete file_path
|
||||
|
||||
content_type 'application/octet-stream'
|
||||
attachment "#{current_site.username}.zip"
|
||||
|
||||
return zipfile
|
||||
end
|
||||
|
||||
get '/site_files/download/:filename' do |filename|
|
||||
send_file File.join(site_base_path(current_site.username), filename), filename: filename, type: 'Application/octet-stream'
|
||||
end
|
||||
|
@ -210,6 +231,10 @@ def site_base_path(subname)
|
|||
File.join settings.public_folder, 'sites', subname
|
||||
end
|
||||
|
||||
def site_file_path(filename)
|
||||
File.join(site_base_path(current_site.username), filename)
|
||||
end
|
||||
|
||||
def template_site_title(username)
|
||||
"#{username.capitalize}#{username[username.length-1] == 's' ? "'" : "'s"} Site"
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue