From dc084aff7c25ff84569941e49c1188fd5cdb4fbe Mon Sep 17 00:00:00 2001 From: Alex Ling Date: Mon, 15 Jun 2020 12:35:44 +0000 Subject: [PATCH] Support webp (#69, nice) --- src/library.cr | 6 ++++-- src/routes/api.cr | 2 +- src/views/title.ecr | 2 +- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/library.cr b/src/library.cr index 193863b..e850173 100644 --- a/src/library.cr +++ b/src/library.cr @@ -4,6 +4,8 @@ require "uri" require "./util" require "./archive" +SUPPORTED_IMG_TYPES = ["image/jpeg", "image/png", "image/webp"] + struct Image property data : Bytes property mime : String @@ -27,7 +29,7 @@ class Entry @size = (File.size path).humanize_bytes file = ArchiveFile.new path @pages = file.entries.count do |e| - ["image/jpeg", "image/png"].includes? \ + SUPPORTED_IMG_TYPES.includes? \ MIME.from_filename? e.filename end file.close @@ -72,7 +74,7 @@ class Entry ArchiveFile.open @zip_path do |file| page = file.entries .select { |e| - ["image/jpeg", "image/png"].includes? \ + SUPPORTED_IMG_TYPES.includes? \ MIME.from_filename? e.filename } .sort { |a, b| diff --git a/src/routes/api.cr b/src/routes/api.cr index 91438e2..4911c1b 100644 --- a/src/routes/api.cr +++ b/src/routes/api.cr @@ -224,7 +224,7 @@ class APIRouter < Router entry_id = env.params.query["entry"]? title = @context.library.get_title(title_id).not_nil! - unless ["image/jpeg", "image/png"].includes? \ + unless SUPPORTED_IMG_TYPES.includes? \ MIME.from_filename? filename raise "The uploaded image must be either JPEG or PNG" end diff --git a/src/views/title.ecr b/src/views/title.ecr index 803d023..ec201a6 100644 --- a/src/views/title.ecr +++ b/src/views/title.ecr @@ -72,7 +72,7 @@ Upload a cover image by dropping it here or
- + "> selecting one