From 785e4f57c4f35a900796cea6de31d6f7005c4427 Mon Sep 17 00:00:00 2001 From: RhiobeT Date: Sun, 3 Oct 2021 15:49:58 +0200 Subject: [PATCH] Support video files in viewer --- src/main/java/sh/rhiobet/lalafin/file/FileHelper.java | 2 +- .../java/sh/rhiobet/lalafin/file/ThumbnailService.java | 3 ++- .../java/sh/rhiobet/lalafin/file/ViewerService.java | 10 ++++++++-- src/main/resources/templates/view-index.html | 8 +++++++- 4 files changed, 18 insertions(+), 5 deletions(-) diff --git a/src/main/java/sh/rhiobet/lalafin/file/FileHelper.java b/src/main/java/sh/rhiobet/lalafin/file/FileHelper.java index 26f5b11..bed5dc9 100644 --- a/src/main/java/sh/rhiobet/lalafin/file/FileHelper.java +++ b/src/main/java/sh/rhiobet/lalafin/file/FileHelper.java @@ -3,7 +3,7 @@ package sh.rhiobet.lalafin.file; public class FileHelper { public static String getMimeType(String filename) { - String extension = filename.substring(filename.lastIndexOf('.') + 1); + String extension = filename.substring(filename.lastIndexOf('.') + 1).toLowerCase(); switch (extension) { case "3gp": diff --git a/src/main/java/sh/rhiobet/lalafin/file/ThumbnailService.java b/src/main/java/sh/rhiobet/lalafin/file/ThumbnailService.java index e61912c..3e2211c 100644 --- a/src/main/java/sh/rhiobet/lalafin/file/ThumbnailService.java +++ b/src/main/java/sh/rhiobet/lalafin/file/ThumbnailService.java @@ -89,7 +89,8 @@ public class ThumbnailService { try { Optional imgPath = Files.list(folderPath).sorted() .filter(p -> !Files.isDirectory(p) - && (p.toString().endsWith(".png") || p.toString().endsWith(".jpg"))) + && (p.toString().toLowerCase().endsWith(".png") + || p.toString().toLowerCase().endsWith(".jpg"))) .findFirst(); if (imgPath.isPresent()) { thumbPath.getParent().toFile().mkdirs(); diff --git a/src/main/java/sh/rhiobet/lalafin/file/ViewerService.java b/src/main/java/sh/rhiobet/lalafin/file/ViewerService.java index 0e926dc..4496520 100644 --- a/src/main/java/sh/rhiobet/lalafin/file/ViewerService.java +++ b/src/main/java/sh/rhiobet/lalafin/file/ViewerService.java @@ -109,9 +109,15 @@ public class ViewerService { String viewUriBase = folderInfo.viewUrl.replaceAll("/[^/]*$", "/"); TemplateInstance viewTemplateInstance = viewTemplate.instance().data("info", requestedFile) - .data("image", requestedFile.directUrl).data("currpage", page) .data("totpage", viewableFiles.size()).data("prevuri", viewUriBase + (page - 1)) - .data("nexturi", viewUriBase + (page + 1)); + .data("currpage", page).data("nexturi", viewUriBase + (page + 1)); + + String requestedFileMimeType = FileHelper.getMimeType(requestedFile.filename); + if (requestedFileMimeType.startsWith("image/")) { + viewTemplateInstance.data("image", requestedFile.directUrl); + } else if (requestedFileMimeType.startsWith("video/")) { + viewTemplateInstance.data("video", requestedFile.directUrl); + } ResponseBuilder response = Response.ok(viewTemplateInstance.render()); response.header("Content-Type", "text/html"); diff --git a/src/main/resources/templates/view-index.html b/src/main/resources/templates/view-index.html index 97126d6..a7a9763 100644 --- a/src/main/resources/templates/view-index.html +++ b/src/main/resources/templates/view-index.html @@ -15,7 +15,13 @@
- {#if currpage < totpage}{/if}{#if currpage < totpage}{/if} + {#if currpage < totpage}{/if} + {#if image != null} + + {#else if video != null} + + {/if} + {#if currpage < totpage}{/if}