From c6fd99db9167c217f4688442887ec47cf0b5b017 Mon Sep 17 00:00:00 2001 From: Paul Friederichsen Date: Wed, 29 Jan 2025 17:15:05 -0600 Subject: [PATCH] Update with jpeg-xl support for hydrus 607 --- src/app/hydrus-file-mimes.ts | 19 +++++++++++++------ src/app/hydrus-file.ts | 1 + src/app/photopea.ts | 1 + 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/src/app/hydrus-file-mimes.ts b/src/app/hydrus-file-mimes.ts index 84098a1..542e4ec 100644 --- a/src/app/hydrus-file-mimes.ts +++ b/src/app/hydrus-file-mimes.ts @@ -86,6 +86,7 @@ export enum HydrusFiletype { APPLICATION_PPT = 82, ANIMATION_WEBP = 83, UNDETERMINED_WEBP = 84, + IMAGE_JXL = 85, APPLICATION_OCTET_STREAM = 100, APPLICATION_UNKNOWN = 101 } @@ -109,6 +110,7 @@ const searchableFileTypes = [ HydrusFiletype.IMAGE_AVIF, HydrusFiletype.IMAGE_AVIF_SEQUENCE, HydrusFiletype.IMAGE_BMP, + HydrusFiletype.IMAGE_JXL, HydrusFiletype.ANIMATION_UGOIRA, HydrusFiletype.APPLICATION_FLASH, HydrusFiletype.VIDEO_AVI, @@ -159,14 +161,15 @@ const IMAGES = [ HydrusFiletype.IMAGE_JPEG, HydrusFiletype.IMAGE_PNG, HydrusFiletype.IMAGE_GIF, - HydrusFiletype.IMAGE_BMP, HydrusFiletype.IMAGE_WEBP, - HydrusFiletype.IMAGE_TIFF, - HydrusFiletype.IMAGE_QOI, - HydrusFiletype.IMAGE_ICON, - HydrusFiletype.IMAGE_HEIF, - HydrusFiletype.IMAGE_HEIC, HydrusFiletype.IMAGE_AVIF, + HydrusFiletype.IMAGE_JXL, + HydrusFiletype.IMAGE_BMP, + HydrusFiletype.IMAGE_HEIC, + HydrusFiletype.IMAGE_HEIF, + HydrusFiletype.IMAGE_ICON, + HydrusFiletype.IMAGE_QOI, + HydrusFiletype.IMAGE_TIFF ] const ANIMATIONS = [ @@ -293,6 +296,7 @@ export const mime_string_lookup: Record = { [HydrusFiletype.IMAGE_HEIC_SEQUENCE]: 'heic sequence', [HydrusFiletype.IMAGE_AVIF]: 'avif', [HydrusFiletype.IMAGE_AVIF_SEQUENCE]: 'avif sequence', + [HydrusFiletype.IMAGE_JXL]: 'jxl', [HydrusFiletype.ANIMATION_UGOIRA] : 'ugoira', [HydrusFiletype.APPLICATION_CBZ] : 'cbz', [HydrusFiletype.APPLICATION_FLASH] : 'flash', @@ -383,6 +387,7 @@ const mime_mimetype_string_lookup: Record = { [HydrusFiletype.IMAGE_HEIC_SEQUENCE]: 'image/heic-sequence', [HydrusFiletype.IMAGE_AVIF]: 'image/avif', [HydrusFiletype.IMAGE_AVIF_SEQUENCE]: 'image/avif-sequence', + [HydrusFiletype.IMAGE_JXL]: 'image/jxl', [HydrusFiletype.ANIMATION_UGOIRA] : 'application/zip', [HydrusFiletype.APPLICATION_FLASH] : 'application/x-shockwave-flash', [HydrusFiletype.APPLICATION_OCTET_STREAM] : 'application/octet-stream', @@ -473,6 +478,7 @@ const mime_ext_lookup: Partial> = { [HydrusFiletype.IMAGE_HEIC_SEQUENCE]: '.heics', [HydrusFiletype.IMAGE_AVIF]: '.avif', [HydrusFiletype.IMAGE_AVIF_SEQUENCE]: '.avifs', + [HydrusFiletype.IMAGE_JXL]: '.jxl', [HydrusFiletype.ANIMATION_UGOIRA] : '.zip', [HydrusFiletype.APPLICATION_CBZ] : '.cbz', [HydrusFiletype.APPLICATION_FLASH] : '.swf', @@ -550,6 +556,7 @@ const mime_enum_lookup: Record = { 'image/heic-sequence' : HydrusFiletype.IMAGE_HEIC_SEQUENCE, 'image/avif' : HydrusFiletype.IMAGE_AVIF, 'image/avif-sequence' : HydrusFiletype.IMAGE_AVIF_SEQUENCE, + 'image/jxl' : HydrusFiletype.IMAGE_JXL, 'image/vnd.microsoft.icon' : HydrusFiletype.IMAGE_ICON, 'image' : HydrusFiletype.GENERAL_IMAGE, 'application/x-shockwave-flash' : HydrusFiletype.APPLICATION_FLASH, diff --git a/src/app/hydrus-file.ts b/src/app/hydrus-file.ts index 494cb59..b5d8248 100644 --- a/src/app/hydrus-file.ts +++ b/src/app/hydrus-file.ts @@ -181,6 +181,7 @@ export function getFileCategory(type: HydrusFiletype, hydrusVersion?: number): F HydrusFiletype.IMAGE_HEIC_SEQUENCE, HydrusFiletype.IMAGE_AVIF, HydrusFiletype.IMAGE_AVIF_SEQUENCE, + HydrusFiletype.IMAGE_JXL ].includes(type)) { return FileCategory.Image; } diff --git a/src/app/photopea.ts b/src/app/photopea.ts index 43a4a7e..4895224 100644 --- a/src/app/photopea.ts +++ b/src/app/photopea.ts @@ -56,6 +56,7 @@ export function canOpenInPhotopea(file: HydrusBasicFile) { HydrusFiletype.IMAGE_ICON, HydrusFiletype.APPLICATION_KRITA, HydrusFiletype.IMAGE_SVG, + HydrusFiletype.IMAGE_JXL ].includes(file.file_type) }