From 8ac89c420c06fea17067f398129b7b1ded2d6908 Mon Sep 17 00:00:00 2001 From: Alex Ling Date: Fri, 23 Oct 2020 12:30:29 +0000 Subject: [PATCH] Add helper methods for thumbnail generation --- src/library/entry.cr | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/src/library/entry.cr b/src/library/entry.cr index 589794a..2c6d1bf 100644 --- a/src/library/entry.cr +++ b/src/library/entry.cr @@ -69,7 +69,7 @@ class Entry def cover_url return "#{Config.current.base_url}img/icon.png" if @err_msg - url = "#{Config.current.base_url}api/page/#{@book.id}/#{@id}/1" + url = "#{Config.current.base_url}api/cover/#{@book.id}/#{@id}" TitleInfo.new @book.dir do |info| info_url = info.entry_cover_url[@title]? unless info_url.nil? || info_url.empty? @@ -207,4 +207,23 @@ class Entry def started?(username) load_progress(username) > 0 end + + def generate_thumbnail : Image? + return if @err_msg + + img = read_page(1).not_nil! + begin + thumbnail = ImageSize.resize img.data, height: 300 + img.data = thumbnail + Storage.default.save_thumbnail @id, img + rescue e + Logger.warn "Failed to generate thumbnail for entry #{@id}. #{e}" + end + + img + end + + def get_thumbnail : Image? + Storage.default.get_thumbnail @id + end end