Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions app/services/images/convert.rb
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@ def self.to_tiff(file)
convert << file.path
convert << '-define'
convert << 'tiff:tile-geometry=1024x1024'
convert << '-define'
convert << 'ptif:pyramid=1024x8'
convert << '-depth'
convert << '8'
convert << '-compress'
Expand Down
41 changes: 41 additions & 0 deletions lib/tasks/iiif.rake
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,47 @@ namespace :iiif do
end
end

desc 'Converts the source images to pyramidal TIFFs for resources created in a given date range'
task convert_images_by_date_range: :environment do
# Parse the arguments
options = {}

opt_parser = OptionParser.new do |opts|
opts.banner = 'Usage: rake iiif:convert_images_by_date_range [options]'
opts.on('--after after_date', 'After this date') { |after| options[:after] = after }
opts.on('--before before_date', 'Before this date') { |before| options[:before] = before }
end

args = opt_parser.order!(ARGV) {}
opt_parser.parse!(args)

if options[:after].blank? && options[:before].blank?
puts 'Please specify at least one date (--after and/or --before)...'
exit 0
end

query = Resource.with_attachment('content_converted') do |subquery|
subquery = subquery
.joins(:blob)
.where('active_storage_blobs.byte_size > ?', 0)

subquery = subquery.where('active_storage_blobs.created_at > ?', options[:after]) if options[:after].present?
subquery = subquery.where('active_storage_blobs.created_at < ?', options[:before]) if options[:before].present?

subquery
end

total_queued = 0
query.in_batches do |resources|
resources.pluck(:id).each do |resource_id|
ConvertImageJob.perform_later(resource_id)
total_queued += 1
end
end

puts "Queued #{total_queued} resources for conversion"
end

desc 'Converts the source images to pyramidal TIFFs for resources by the specified MIME type'
task convert_images_by_type: :environment do
# Parse the arguments
Expand Down