From 0fa2bfa744be72b8e3052c990024e079ee7edab1 Mon Sep 17 00:00:00 2001 From: Leeingnyo Date: Sun, 19 Dec 2021 16:40:38 +0900 Subject: [PATCH] Fix bug on examine --- src/library/title.cr | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/src/library/title.cr b/src/library/title.cr index 9b797f4..d45e4eb 100644 --- a/src/library/title.cr +++ b/src/library/title.cr @@ -102,7 +102,11 @@ class Title previous_titles_size = @title_ids.size @title_ids.select! do |title_id| - title = Library.default.get_title! title_id + title = Library.default.get_title title_id + unless title # for if data consistency broken + context["deleted_title_ids"].concat [title_id] + next false + end existence = title.examine context unless existence context["deleted_title_ids"].concat [title_id] + @@ -137,6 +141,18 @@ class Title Library.default.title_hash[title.id] = title @title_ids << title.id is_titles_added = true + + # We think they are removed, but they are here! + # Cancel reserved jobs + revival_title_ids = [title.id] + title.deep_titles.map &.id + context["deleted_title_ids"].select! do |id| + !(revival_title_ids.includes? id) + end + revival_entry_ids = title.deep_entries.map &.id + context["deleted_entry_ids"].select! do |id| + !(revival_entry_ids.includes? id) + end + next end if is_supported_file path @@ -167,7 +183,12 @@ class Title end end - true + if @title_ids.size > 0 || @entries.size > 0 + true + else + context["deleted_title_ids"].concat [@id] + false + end end alias SortContext = NamedTuple(username: String, opt: SortOptions)