From 5645f272df34751b078ea2d5e811e098f0312298 Mon Sep 17 00:00:00 2001 From: Alex Ling Date: Fri, 28 Feb 2020 18:08:56 +0000 Subject: [PATCH] When an invalid zip file is found, instead of ignoring it silently, log a warning message --- src/library.cr | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/library.cr b/src/library.cr index 06805f8..fcdfb58 100644 --- a/src/library.cr +++ b/src/library.cr @@ -61,9 +61,9 @@ end class Title JSON.mapping dir: String, entries: Array(Entry), title: String, - id: String, encoded_title: String, mtime: Time + id: String, encoded_title: String, mtime: Time, logger: MLogger - def initialize(dir : String, storage) + def initialize(dir : String, storage, @logger : MLogger) @dir = dir @id = storage.get_id @dir, true @title = File.basename dir @@ -91,6 +91,8 @@ class Title file.close return true rescue + @logger.warn "File #{path} is corrupted or is not a valid zip "\ + "archive. Ignoring it." return false end end @@ -200,7 +202,7 @@ class Library end @titles = (Dir.entries @dir) .select { |path| File.directory? File.join @dir, path } - .map { |path| Title.new File.join(@dir, path), @storage } + .map { |path| Title.new File.join(@dir, path), @storage, @logger } .select { |title| !title.entries.empty? } .sort { |a, b| a.title <=> b.title } @logger.debug "Scan completed"