blob: c4a546b59dbf8a6c8039240c64d0a2e8cc3361fc (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
# frozen_string_literal: true
require 'media_tools'
require 'booru/image_processing/processor'
require 'booru/image_processing/png_processor'
require 'booru/image_processing/jpeg_processor'
require 'booru/image_processing/gif_processor'
require 'booru/image_processing/svg_processor'
require 'booru/image_processing/webm_processor'
require 'booru/image_processing/mp4_processor'
module Booru
module ImageProcessing
PROCESSORS = {
'image/png' => PngProcessor,
'image/jpeg' => JpegProcessor,
'image/gif' => GifProcessor,
'image/svg+xml' => SvgProcessor,
'video/webm' => WebMProcessor,
'video/mp4' => Mp4Processor
}.freeze
def self.processor_for_content_type(content_type)
PROCESSORS[content_type]
end
def self.processor_for_file(path)
metadata = MediaTools.stat(path).to_h
PROCESSORS[metadata[:mime]].new(path, nil, metadata)
end
end
end
|