* Fix #201: Account archive download * Export actor and private key in the archive * Optimize BackupService - Add conversation to cached associations of status, because somehow it was forgotten and is source of N+1 queries - Explicitly call GC between batches of records being fetched (Model class allocations are the worst offender) - Stream media files into the tar in 1MB chunks (Do not allocate media file (up to 8MB) as string into memory) - Use #bytesize instead of #size to calculate file size for JSON (Fix FileOverflow error) - Segment media into subfolders by status ID because apparently GIF-to-MP4 media are all named "media.mp4" for some reason * Keep uniquely generated filename in Paperclip::GifTranscoder * Ensure dumped files do not overwrite each other by maintaing directory partitions * Give tar archives a good name * Add scheduler to remove week-old backups * Fix code style issue
		
			
				
	
	
		
			46 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			46 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
- content_for :page_title do
 | 
						|
  = t('settings.export')
 | 
						|
 | 
						|
.table-wrapper
 | 
						|
  %table.table
 | 
						|
    %tbody
 | 
						|
      %tr
 | 
						|
        %th= t('exports.storage')
 | 
						|
        %td= number_to_human_size @export.total_storage
 | 
						|
        %td
 | 
						|
      %tr
 | 
						|
        %th= t('exports.follows')
 | 
						|
        %td= @export.total_follows
 | 
						|
        %td= table_link_to 'download', t('exports.csv'), settings_exports_follows_path(format: :csv)
 | 
						|
      %tr
 | 
						|
        %th= t('exports.blocks')
 | 
						|
        %td= @export.total_blocks
 | 
						|
        %td= table_link_to 'download', t('exports.csv'), settings_exports_blocks_path(format: :csv)
 | 
						|
      %tr
 | 
						|
        %th= t('exports.mutes')
 | 
						|
        %td= @export.total_mutes
 | 
						|
        %td= table_link_to 'download', t('exports.csv'), settings_exports_mutes_path(format: :csv)
 | 
						|
 | 
						|
%p.muted-hint= t('exports.archive_takeout.hint_html')
 | 
						|
 | 
						|
- if policy(:backup).create?
 | 
						|
  %p= link_to t('exports.archive_takeout.request'), settings_export_path, class: 'button', method: :post
 | 
						|
 | 
						|
- unless @backups.empty?
 | 
						|
  .table-wrapper
 | 
						|
    %table.table
 | 
						|
      %thead
 | 
						|
        %tr
 | 
						|
          %th= t('exports.archive_takeout.date')
 | 
						|
          %th= t('exports.archive_takeout.size')
 | 
						|
          %th
 | 
						|
      %tbody
 | 
						|
        - @backups.each do |backup|
 | 
						|
          %tr
 | 
						|
            %td= l backup.created_at
 | 
						|
            - if backup.processed?
 | 
						|
              %td= number_to_human_size backup.dump_file_size
 | 
						|
              %td= table_link_to 'download', t('exports.archive_takeout.download'), backup.dump.url
 | 
						|
            - else
 | 
						|
              %td{ colspan: 2 }= t('exports.archive_takeout.in_progress')
 |