From 2b0cf4133694dc21176951e0eb382dd446730b9d Mon Sep 17 00:00:00 2001 From: Leeingnyo Date: Tue, 26 Jan 2021 04:14:17 +0900 Subject: [PATCH] add and apply util method is_interesting_file --- src/library/title.cr | 2 +- src/util/signature.cr | 4 +++- src/util/util.cr | 13 +++++++++---- 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/src/library/title.cr b/src/library/title.cr index 88c165b..3f3926a 100644 --- a/src/library/title.cr +++ b/src/library/title.cr @@ -36,7 +36,7 @@ class Title @title_ids << title.id next end - if [".zip", ".cbz", ".rar", ".cbr"].includes? (File.extname path).downcase + if is_interesting_file path entry = Entry.new path, self @entries << entry if entry.pages > 0 || entry.err_msg end diff --git a/src/util/signature.cr b/src/util/signature.cr index 0db6b21..7dc738b 100644 --- a/src/util/signature.cr +++ b/src/util/signature.cr @@ -1,3 +1,5 @@ +require "./util" + class File abstract struct Info def inode @@ -11,7 +13,7 @@ class File # ensures that moving (unless to another device) and renaming the file # preserves the signature, while copying or editing the file changes it. def self.signature(filename) : UInt64 - return 0u64 unless %w(.zip .rar .cbz .cbr).includes? File.extname filename + return 0u64 unless is_interesting_file filename info = File.info filename signatures = [ info.inode, diff --git a/src/util/util.cr b/src/util/util.cr index f174c39..17fe105 100644 --- a/src/util/util.cr +++ b/src/util/util.cr @@ -1,7 +1,8 @@ -IMGS_PER_PAGE = 5 -ENTRIES_IN_HOME_SECTIONS = 8 -UPLOAD_URL_PREFIX = "/uploads" -STATIC_DIRS = ["/css", "/js", "/img", "/favicon.ico"] +IMGS_PER_PAGE = 5 +ENTRIES_IN_HOME_SECTIONS = 8 +UPLOAD_URL_PREFIX = "/uploads" +STATIC_DIRS = ["/css", "/js", "/img", "/favicon.ico"] +INTERESTING_FILE_EXTNAMES = [".zip", ".cbz", ".rar", ".cbr"] def random_str UUID.random.to_s.gsub "-", "" @@ -31,6 +32,10 @@ def register_mime_types end end +def is_interesting_file(path) + INTERESTING_FILE_EXTNAMES.includes? (File.extname path).downcase +end + struct Int def or(other : Int) if self == 0