Unified · Split
| @@ -4,6 +4,8 @@ module Docs · 3 unmodified lines | |||
| 4 | class ImagesFilter < Filter | 4 | class ImagesFilter < Filter |
| 5 | include Instrumentable | 5 | include Instrumentable |
| 6 | 6 | ||
| 7 | DEFAULT_MAX_SIZE = 120_000 # 120 kilobytes | ||
| 8 | |||
| 7 | def self.optimize_image_data(data) | 9 | def self.optimize_image_data(data) |
| 8 | @image_optim ||= ImageOptim.new | 10 | @image_optim ||= ImageOptim.new |
| 9 | @image_optim.optimize_image_data(data) | 11 | @image_optim.optimize_image_data(data) |
| @@ -48,7 +50,7 @@ module Docs · 38 unmodified lines | |||
| 48 | 50 | ||
| 49 | size = image.bytesize | 51 | size = image.bytesize |
| 50 | 52 | ||
| 51 | if size > max_size | 53 | if size > (context[:max_image_size] || DEFAULT_MAX_SIZE) |
| 52 | instrument 'too_big.image', url: url, size: size | 54 | instrument 'too_big.image', url: url, size: size |
| 53 | next | 55 | next |
| 54 | end | 56 | end |
| @@ -64,11 +66,5 @@ module Docs · 9 unmodified lines | |||
| 64 | 66 | ||
| 65 | doc | 67 | doc |
| 66 | end | 68 | end |
| 67 | |||
| 68 | private | ||
| 69 | |||
| 70 | def max_size | ||
| 71 | @max_size ||= context[:max_image_size] || 100.kilobytes | ||
| 72 | end | ||
| 73 | end | 69 | end |
| 74 | end | 70 | end |
| @@ -13,7 +13,7 @@ module Docs · 12 unmodified lines | |||
| 13 | end | 13 | end |
| 14 | 14 | ||
| 15 | def too_big(event) | 15 | def too_big(event) |
| 16 | log "Skipped large image (#{(event.payload[:size] / 1.kilobyte.to_f).round} KB): #{event.payload[:url]}" | 16 | log "Skipped large image (#{(event.payload[:size] / 1_000.0).round} KB): #{event.payload[:url]}" |
| 17 | end | 17 | end |
| 18 | 18 | ||
| 19 | def error(event) | 19 | def error(event) |