From 83e93688eea0093e5544f3b573866b52a92fd2d5 Mon Sep 17 00:00:00 2001 From: Anthony Stirling <77850077+Frooodle@users.noreply.github.com.> Date: Sat, 5 Oct 2024 15:27:57 +0100 Subject: [PATCH] format --- cucumber/features/external.feature | 4 +-- .../SPDF/EE/KeygenLicenseVerifier.java | 5 ++- .../software/SPDF/EE/LicenseKeyChecker.java | 2 -- .../FingerprintBasedSessionFilter.java | 32 ++++++++--------- .../FingerprintBasedSessionManager.java | 36 +++++++++---------- .../fingerprint/FingerprintGenerator.java | 16 ++++----- .../security/SecurityConfiguration.java | 2 +- .../api/converters/ConvertPDFToPDFA.java | 2 +- .../software/SPDF/service/PostHogService.java | 12 +++---- .../misc/ReplaceAndInvertColorStrategy.java | 3 +- src/main/resources/messages_en_GB.properties | 4 +-- src/main/resources/static/css/multi-tool.css | 2 +- .../static/js/multitool/horizontalScroll.js | 25 +++++++------ 13 files changed, 76 insertions(+), 69 deletions(-) diff --git a/cucumber/features/external.feature b/cucumber/features/external.feature index c1330f523..92ca2f40b 100644 --- a/cucumber/features/external.feature +++ b/cucumber/features/external.feature @@ -123,7 +123,7 @@ Feature: API Validation | odt | .odt | | doc | .doc | - @ocr + @ocr @pdfa1 Scenario: PDFA Given I use an example file at "exampleFiles/pdfa2.pdf" as parameter "fileInput" And the request data includes @@ -134,7 +134,7 @@ Feature: API Validation And the response file should have extension ".pdf" And the response file should have size greater than 100 - @ocr + @ocr @pdfa2 Scenario: PDFA1 Given I use an example file at "exampleFiles/pdfa1.pdf" as parameter "fileInput" And the request data includes diff --git a/src/main/java/stirling/software/SPDF/EE/KeygenLicenseVerifier.java b/src/main/java/stirling/software/SPDF/EE/KeygenLicenseVerifier.java index 3d9acdb21..d82629d5c 100644 --- a/src/main/java/stirling/software/SPDF/EE/KeygenLicenseVerifier.java +++ b/src/main/java/stirling/software/SPDF/EE/KeygenLicenseVerifier.java @@ -175,7 +175,10 @@ public class KeygenLicenseVerifier { log.info("Machine activated successfully"); return true; } else { - log.error("Error activating machine. Status code: " + response.statusCode()); + log.error( + "Error activating machine. Status code: {}, error: {}", + response.statusCode(), + response.body()); return false; } diff --git a/src/main/java/stirling/software/SPDF/EE/LicenseKeyChecker.java b/src/main/java/stirling/software/SPDF/EE/LicenseKeyChecker.java index a3c23ce9c..92b41009b 100644 --- a/src/main/java/stirling/software/SPDF/EE/LicenseKeyChecker.java +++ b/src/main/java/stirling/software/SPDF/EE/LicenseKeyChecker.java @@ -37,10 +37,8 @@ public class LicenseKeyChecker { log.info(applicationProperties.toString()); log.info(applicationProperties.getEnterpriseEdition().toString()); if (!applicationProperties.getEnterpriseEdition().isEnabled()) { - System.out.println("gggggg"); enterpriseEnbaledResult = false; } else { - System.out.println("ssssssssssss"); enterpriseEnbaledResult = licenseService.verifyLicense( applicationProperties.getEnterpriseEdition().getKey()); diff --git a/src/main/java/stirling/software/SPDF/config/fingerprint/FingerprintBasedSessionFilter.java b/src/main/java/stirling/software/SPDF/config/fingerprint/FingerprintBasedSessionFilter.java index e220588ea..3815b95bd 100644 --- a/src/main/java/stirling/software/SPDF/config/fingerprint/FingerprintBasedSessionFilter.java +++ b/src/main/java/stirling/software/SPDF/config/fingerprint/FingerprintBasedSessionFilter.java @@ -1,22 +1,22 @@ -//package stirling.software.SPDF.config.fingerprint; +// package stirling.software.SPDF.config.fingerprint; // -//import java.io.IOException; +// import java.io.IOException; // -//import org.springframework.beans.factory.annotation.Autowired; -//import org.springframework.stereotype.Component; -//import org.springframework.web.filter.OncePerRequestFilter; +// import org.springframework.beans.factory.annotation.Autowired; +// import org.springframework.stereotype.Component; +// import org.springframework.web.filter.OncePerRequestFilter; // -//import jakarta.servlet.FilterChain; -//import jakarta.servlet.ServletException; -//import jakarta.servlet.http.HttpServletRequest; -//import jakarta.servlet.http.HttpServletResponse; -//import jakarta.servlet.http.HttpSession; -//import lombok.extern.slf4j.Slf4j; -//import stirling.software.SPDF.utils.RequestUriUtils; +// import jakarta.servlet.FilterChain; +// import jakarta.servlet.ServletException; +// import jakarta.servlet.http.HttpServletRequest; +// import jakarta.servlet.http.HttpServletResponse; +// import jakarta.servlet.http.HttpSession; +// import lombok.extern.slf4j.Slf4j; +// import stirling.software.SPDF.utils.RequestUriUtils; // -////@Component -//@Slf4j -//public class FingerprintBasedSessionFilter extends OncePerRequestFilter { +//// @Component +// @Slf4j +// public class FingerprintBasedSessionFilter extends OncePerRequestFilter { // private final FingerprintGenerator fingerprintGenerator; // private final FingerprintBasedSessionManager sessionManager; // @@ -65,4 +65,4 @@ // log.debug("Proceeding with request: {}", request.getRequestURI()); // filterChain.doFilter(request, response); // } -//} +// } diff --git a/src/main/java/stirling/software/SPDF/config/fingerprint/FingerprintBasedSessionManager.java b/src/main/java/stirling/software/SPDF/config/fingerprint/FingerprintBasedSessionManager.java index 8a81e2eef..3854f62b1 100644 --- a/src/main/java/stirling/software/SPDF/config/fingerprint/FingerprintBasedSessionManager.java +++ b/src/main/java/stirling/software/SPDF/config/fingerprint/FingerprintBasedSessionManager.java @@ -1,24 +1,24 @@ -//package stirling.software.SPDF.config.fingerprint; +// package stirling.software.SPDF.config.fingerprint; // -//import java.util.Iterator; -//import java.util.Map; -//import java.util.concurrent.ConcurrentHashMap; -//import java.util.concurrent.TimeUnit; +// import java.util.Iterator; +// import java.util.Map; +// import java.util.concurrent.ConcurrentHashMap; +// import java.util.concurrent.TimeUnit; // -//import org.springframework.scheduling.annotation.Scheduled; -//import org.springframework.stereotype.Component; +// import org.springframework.scheduling.annotation.Scheduled; +// import org.springframework.stereotype.Component; // -//import jakarta.servlet.http.HttpSession; -//import jakarta.servlet.http.HttpSessionAttributeListener; -//import jakarta.servlet.http.HttpSessionEvent; -//import jakarta.servlet.http.HttpSessionListener; -//import lombok.AllArgsConstructor; -//import lombok.Data; -//import lombok.extern.slf4j.Slf4j; +// import jakarta.servlet.http.HttpSession; +// import jakarta.servlet.http.HttpSessionAttributeListener; +// import jakarta.servlet.http.HttpSessionEvent; +// import jakarta.servlet.http.HttpSessionListener; +// import lombok.AllArgsConstructor; +// import lombok.Data; +// import lombok.extern.slf4j.Slf4j; // -//@Slf4j -//@Component -//public class FingerprintBasedSessionManager +// @Slf4j +// @Component +// public class FingerprintBasedSessionManager // implements HttpSessionListener, HttpSessionAttributeListener { // private static final ConcurrentHashMap activeFingerprints = // new ConcurrentHashMap<>(); @@ -131,4 +131,4 @@ // private String sessionId; // private long lastAccessTime; // } -//} +// } diff --git a/src/main/java/stirling/software/SPDF/config/fingerprint/FingerprintGenerator.java b/src/main/java/stirling/software/SPDF/config/fingerprint/FingerprintGenerator.java index 2abc82124..f1a65cf8c 100644 --- a/src/main/java/stirling/software/SPDF/config/fingerprint/FingerprintGenerator.java +++ b/src/main/java/stirling/software/SPDF/config/fingerprint/FingerprintGenerator.java @@ -1,14 +1,14 @@ -//package stirling.software.SPDF.config.fingerprint; +// package stirling.software.SPDF.config.fingerprint; // -//import java.security.MessageDigest; -//import java.security.NoSuchAlgorithmException; +// import java.security.MessageDigest; +// import java.security.NoSuchAlgorithmException; // -//import org.springframework.stereotype.Component; +// import org.springframework.stereotype.Component; // -//import jakarta.servlet.http.HttpServletRequest; +// import jakarta.servlet.http.HttpServletRequest; // -//@Component -//public class FingerprintGenerator { +// @Component +// public class FingerprintGenerator { // // public String generateFingerprint(HttpServletRequest request) { // if (request == null) { @@ -74,4 +74,4 @@ // throw new RuntimeException("Failed to generate fingerprint hash", e); // } // } -//} +// } diff --git a/src/main/java/stirling/software/SPDF/config/security/SecurityConfiguration.java b/src/main/java/stirling/software/SPDF/config/security/SecurityConfiguration.java index e6360904f..33334ad9d 100644 --- a/src/main/java/stirling/software/SPDF/config/security/SecurityConfiguration.java +++ b/src/main/java/stirling/software/SPDF/config/security/SecurityConfiguration.java @@ -79,7 +79,7 @@ public class SecurityConfiguration { http.authenticationManager(authenticationManager(http)); if (loginEnabledValue) { - http.addFilterBefore( + http.addFilterBefore( userAuthenticationFilter, UsernamePasswordAuthenticationFilter.class); http.csrf(csrf -> csrf.disable()); http.addFilterBefore(rateLimitingFilter(), UsernamePasswordAuthenticationFilter.class); diff --git a/src/main/java/stirling/software/SPDF/controller/api/converters/ConvertPDFToPDFA.java b/src/main/java/stirling/software/SPDF/controller/api/converters/ConvertPDFToPDFA.java index 14aef7346..c437c4cb0 100644 --- a/src/main/java/stirling/software/SPDF/controller/api/converters/ConvertPDFToPDFA.java +++ b/src/main/java/stirling/software/SPDF/controller/api/converters/ConvertPDFToPDFA.java @@ -61,7 +61,7 @@ public class ConvertPDFToPDFA { command.add("-dPDFA=" + ("pdfa".equals(outputFormat) ? "2" : "1")); command.add("-dNOPAUSE"); command.add("-dBATCH"); - command.add("-sColorConversionStrategy=UseDeviceIndependentColor"); + command.add("-sColorConversionStrategy=sRGB"); command.add("-sDEVICE=pdfwrite"); command.add("-dPDFACompatibilityPolicy=2"); command.add("-o"); diff --git a/src/main/java/stirling/software/SPDF/service/PostHogService.java b/src/main/java/stirling/software/SPDF/service/PostHogService.java index 2ff679a99..9b22cf1cb 100644 --- a/src/main/java/stirling/software/SPDF/service/PostHogService.java +++ b/src/main/java/stirling/software/SPDF/service/PostHogService.java @@ -39,9 +39,9 @@ public class PostHogService { } private void captureSystemInfo() { - if(!Boolean.getBoolean(applicationProperties.getSystem().getEnableAnalytics())) { - return; - } + if (!Boolean.getBoolean(applicationProperties.getSystem().getEnableAnalytics())) { + return; + } try { postHog.capture(uniqueId, "system_info_captured", captureServerMetrics()); } catch (Exception e) { @@ -50,9 +50,9 @@ public class PostHogService { } public void captureEvent(String eventName, Map properties) { - if(!Boolean.getBoolean(applicationProperties.getSystem().getEnableAnalytics())) { - return; - } + if (!Boolean.getBoolean(applicationProperties.getSystem().getEnableAnalytics())) { + return; + } postHog.capture(uniqueId, eventName, properties); } diff --git a/src/main/java/stirling/software/SPDF/utils/misc/ReplaceAndInvertColorStrategy.java b/src/main/java/stirling/software/SPDF/utils/misc/ReplaceAndInvertColorStrategy.java index 875907314..024e0e706 100644 --- a/src/main/java/stirling/software/SPDF/utils/misc/ReplaceAndInvertColorStrategy.java +++ b/src/main/java/stirling/software/SPDF/utils/misc/ReplaceAndInvertColorStrategy.java @@ -6,11 +6,12 @@ import org.springframework.core.io.InputStreamResource; import org.springframework.web.multipart.MultipartFile; import lombok.Data; +import lombok.EqualsAndHashCode; import stirling.software.SPDF.model.api.PDFFile; import stirling.software.SPDF.model.api.misc.ReplaceAndInvert; @Data -// @EqualsAndHashCode(callSuper = true) +@EqualsAndHashCode(callSuper = true) public abstract class ReplaceAndInvertColorStrategy extends PDFFile { protected ReplaceAndInvert replaceAndInvert; diff --git a/src/main/resources/messages_en_GB.properties b/src/main/resources/messages_en_GB.properties index ce56fc382..6cdfaadbb 100644 --- a/src/main/resources/messages_en_GB.properties +++ b/src/main/resources/messages_en_GB.properties @@ -508,9 +508,9 @@ home.splitPdfByChapters.desc=Split a PDF into multiple files based on its chapte splitPdfByChapters.tags=split,chapters,bookmarks,organize #replace-invert-color -replace-color.title=Replace-Invert-Color +replace-color.title=Advanced Colour options replace-color.header=Replace-Invert Color PDF -home.replaceColorPdf.title=Replace and Invert Color +home.replaceColorPdf.title=Advanced Colour options home.replaceColorPdf.desc=Replace color for text and background in PDF and invert full color of pdf to reduce file size replaceColorPdf.tags=Replace Color,Page operations,Back end,server side replace-color.selectText.1=Replace or Invert color Options diff --git a/src/main/resources/static/css/multi-tool.css b/src/main/resources/static/css/multi-tool.css index 295659086..9687470a8 100644 --- a/src/main/resources/static/css/multi-tool.css +++ b/src/main/resources/static/css/multi-tool.css @@ -77,7 +77,7 @@ label { flex-direction: column; padding: 1rem; border-radius: 25px; - overflow-y: hidden; + overflow-y: auto; overflow-x: auto; min-height: 275px; margin: 0 0 30px 0; diff --git a/src/main/resources/static/js/multitool/horizontalScroll.js b/src/main/resources/static/js/multitool/horizontalScroll.js index 2d20fd7b2..28ec42f51 100644 --- a/src/main/resources/static/js/multitool/horizontalScroll.js +++ b/src/main/resources/static/js/multitool/horizontalScroll.js @@ -1,27 +1,32 @@ const scrollDivHorizontally = (id) => { - var scrollDelta = 0; // variable to store the accumulated scroll delta + var scrollDeltaX = 0; // variable to store the accumulated horizontal scroll delta + var scrollDeltaY = 0; // variable to store the accumulated vertical scroll delta var isScrolling = false; // variable to track if scroll is already in progress - const divToScrollHorizontally = document.getElementById(id); + const divToScroll = document.getElementById(id); + function scrollLoop() { - // Scroll the div horizontally by a fraction of the accumulated scroll delta - divToScrollHorizontally.scrollLeft += scrollDelta * 0.1; + // Scroll the div horizontally and vertically by a fraction of the accumulated scroll delta + divToScroll.scrollLeft += scrollDeltaX * 0.1; + divToScroll.scrollTop += scrollDeltaY * 0.1; // Reduce the accumulated scroll delta by a fraction - scrollDelta *= 0.9; + scrollDeltaX *= 0.9; + scrollDeltaY *= 0.9; // If scroll delta is still significant, continue the scroll loop - if (Math.abs(scrollDelta) > 0.1) { + if (Math.abs(scrollDeltaX) > 0.1 || Math.abs(scrollDeltaY) > 0.1) { requestAnimationFrame(scrollLoop); } else { isScrolling = false; // Reset scroll in progress flag } } - divToScrollHorizontally.addEventListener("wheel", function (e) { + divToScroll.addEventListener("wheel", function (e) { e.preventDefault(); // prevent default mousewheel behavior - // Accumulate the horizontal scroll delta - scrollDelta -= e.deltaX || e.wheelDeltaX || -e.deltaY || -e.wheelDeltaY; + // Accumulate the horizontal and vertical scroll delta + scrollDeltaX -= e.deltaX || e.wheelDeltaX || -e.deltaY || -e.wheelDeltaY; + scrollDeltaY -= e.deltaY || e.wheelDeltaY || -e.deltaX || -e.wheelDeltaX; // If scroll is not already in progress, start the scroll loop if (!isScrolling) { @@ -31,4 +36,4 @@ const scrollDivHorizontally = (id) => { }); }; -export default scrollDivHorizontally; +export default scrollDivHorizontally; \ No newline at end of file