From 2604dc3cceddefae6ec8394c6433889c3651fb55 Mon Sep 17 00:00:00 2001 From: Alan Orth Date: Thu, 6 Oct 2022 14:15:58 +0300 Subject: [PATCH] src: skip Infographics and Maps in FixJpgJpgThumbnails Instead of checking whether they exist and then skipping them just at the moment when we want to swap the bitstreams let's bail early when we know an item is an Infographic or a Map. --- .../ilri/cgspace/scripts/FixJpgJpgThumbnails.java | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/main/java/io/github/ilri/cgspace/scripts/FixJpgJpgThumbnails.java b/src/main/java/io/github/ilri/cgspace/scripts/FixJpgJpgThumbnails.java index d292d5a..21eee83 100644 --- a/src/main/java/io/github/ilri/cgspace/scripts/FixJpgJpgThumbnails.java +++ b/src/main/java/io/github/ilri/cgspace/scripts/FixJpgJpgThumbnails.java @@ -88,13 +88,13 @@ public class FixJpgJpgThumbnails { } private static void processItem(Context context, Item item) throws SQLException, AuthorizeException, IOException { - // Some bitstreams like Infographics are large JPGs and put in the ORIGINAL bundle on purpose so we shouldn't + // Some bitstreams like Infographics and Maps are large JPEGs and put in the ORIGINAL bundle on purpose so we shouldn't // swap them. List itemTypes = itemService.getMetadataByMetadataString(item, "dcterms.type"); - boolean itemHasInfographic = false; for (MetadataValue itemType: itemTypes) { - if (itemType.getValue().equals("Infographic")) { - itemHasInfographic = true; + if (itemType.getValue().equals("Infographic") || itemType.getValue().equals("Map")) { + System.out.println(item.getHandle() + ": item has an Infographic or Map, skipping."); + return; } } @@ -117,7 +117,6 @@ public class FixJpgJpgThumbnails { /* - check if the original file name is the same as the thumbnail name minus the extra ".jpg" - check if the thumbnail description indicates it was automatically generated - - check if the item has dc.type Infographic (JPG could be the "real" item!) - check if the original bitstream is less than ~100KiB - Note: in my tests there were 4022 items with ".jpg.jpg" thumbnails totaling 394549249 bytes for an average of about 98KiB so ~100KiB seems like a good cut off @@ -125,7 +124,6 @@ public class FixJpgJpgThumbnails { if ( originalName.equalsIgnoreCase(StringUtils.removeEndIgnoreCase(thumbnailName, ".jpg")) && ("Generated Thumbnail".equals(thumbnailBitstream.getDescription()) || "IM Thumbnail".equals(thumbnailBitstream.getDescription())) - && !itemHasInfographic && originalBitstreamBytes < 100000 ) { System.out.println(item.getHandle() + ": replacing " + thumbnailName + " with " + originalName);