From b56f4df98a515b63d33eec6e49abf7d9e2be56f9 Mon Sep 17 00:00:00 2001 From: itdominator <1itdominator@gmail.com> Date: Sat, 27 Jul 2024 01:06:37 -0500 Subject: [PATCH] Updated impoprt order --- .factorypath | 78 +++++++++++++++++++ .settings/org.eclipse.core.resources.prefs | 5 ++ .settings/org.eclipse.jdt.apt.core.prefs | 4 + .settings/org.eclipse.jdt.core.prefs | 10 +++ .settings/org.eclipse.m2e.core.prefs | 4 + .../com/itdominator/api/DataSourceConfig.java | 9 +-- .../api/controller/BaseController.java | 12 ++- .../controller/ThumbnailerApiController.java | 33 +++----- .../com/itdominator/api/dto/ScanQuery.java | 4 +- .../com/itdominator/api/dto/ThumbnailDto.java | 2 - .../api/dto/ThumbnailSearchCriteria.java | 3 - .../java/com/itdominator/api/dto/User.java | 4 +- .../itdominator/api/entities/Thumbnails.java | 5 +- .../api/entities/ThumbnailsId.java | 2 - .../api/repositories/ThumbnailRepository.java | 6 +- .../api/services/ThumbnailerService.java | 8 +- .../com/itdominator/api/util/Thumbnailer.java | 21 +++-- 17 files changed, 134 insertions(+), 76 deletions(-) create mode 100644 .factorypath create mode 100644 .settings/org.eclipse.core.resources.prefs create mode 100644 .settings/org.eclipse.jdt.apt.core.prefs create mode 100644 .settings/org.eclipse.jdt.core.prefs create mode 100644 .settings/org.eclipse.m2e.core.prefs diff --git a/.factorypath b/.factorypath new file mode 100644 index 0000000..1066352 --- /dev/null +++ b/.factorypath @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000..839d647 --- /dev/null +++ b/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,5 @@ +eclipse.preferences.version=1 +encoding//src/main/java=UTF-8 +encoding//src/main/resources=UTF-8 +encoding//src/test/java=UTF-8 +encoding/=UTF-8 diff --git a/.settings/org.eclipse.jdt.apt.core.prefs b/.settings/org.eclipse.jdt.apt.core.prefs new file mode 100644 index 0000000..dfa4f3a --- /dev/null +++ b/.settings/org.eclipse.jdt.apt.core.prefs @@ -0,0 +1,4 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.apt.aptEnabled=true +org.eclipse.jdt.apt.genSrcDir=target/generated-sources/annotations +org.eclipse.jdt.apt.genTestSrcDir=target/generated-test-sources/test-annotations diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..3cba0a0 --- /dev/null +++ b/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,10 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.methodParameters=generate +org.eclipse.jdt.core.compiler.codegen.targetPlatform=17 +org.eclipse.jdt.core.compiler.compliance=17 +org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=ignore +org.eclipse.jdt.core.compiler.processAnnotations=enabled +org.eclipse.jdt.core.compiler.release=enabled +org.eclipse.jdt.core.compiler.source=17 diff --git a/.settings/org.eclipse.m2e.core.prefs b/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000..f897a7f --- /dev/null +++ b/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/src/main/java/com/itdominator/api/DataSourceConfig.java b/src/main/java/com/itdominator/api/DataSourceConfig.java index c668a13..a4eeb32 100644 --- a/src/main/java/com/itdominator/api/DataSourceConfig.java +++ b/src/main/java/com/itdominator/api/DataSourceConfig.java @@ -1,11 +1,10 @@ package com.itdominator.api; - +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Primary; import org.springframework.core.env.Environment; -import org.springframework.context.annotation.Configuration; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jdbc.datasource.DriverManagerDataSource; @Configuration @@ -20,8 +19,8 @@ public class DataSourceConfig { final DriverManagerDataSource dataSource = new DriverManagerDataSource(); dataSource.setDriverClassName(env.getProperty("driverClassName")); dataSource.setUrl(env.getProperty("url")); - // dataSource.setUsername(env.getProperty("user")); - // dataSource.setPassword(env.getProperty("password")); + // dataSource.setUsername(env.getProperty("user")); + // dataSource.setPassword(env.getProperty("password")); return dataSource; } } diff --git a/src/main/java/com/itdominator/api/controller/BaseController.java b/src/main/java/com/itdominator/api/controller/BaseController.java index e7f2bd9..949ada3 100644 --- a/src/main/java/com/itdominator/api/controller/BaseController.java +++ b/src/main/java/com/itdominator/api/controller/BaseController.java @@ -1,36 +1,34 @@ package com.itdominator.api.controller; +import java.lang.String; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; import com.itdominator.api.dto.ScanQuery; import com.itdominator.api.dto.User; import lombok.extern.slf4j.Slf4j; - - - @Controller @Slf4j public class BaseController { - @GetMapping({"/", "home"}) + @GetMapping({ "/", "home" }) public String index() { return "index"; } - @GetMapping("/register") + @PostMapping("/register") public String register(Model model) { model.addAttribute("user", new User()); return "register"; } - - @GetMapping("/submit-for-scan") + @PostMapping("/submit-for-scan") public String submitForScan(Model model) { model.addAttribute("scan_query", new ScanQuery()); diff --git a/src/main/java/com/itdominator/api/controller/ThumbnailerApiController.java b/src/main/java/com/itdominator/api/controller/ThumbnailerApiController.java index 0fe262b..b4805a3 100644 --- a/src/main/java/com/itdominator/api/controller/ThumbnailerApiController.java +++ b/src/main/java/com/itdominator/api/controller/ThumbnailerApiController.java @@ -1,14 +1,11 @@ package com.itdominator.api.controller; - import java.io.IOException; import java.nio.file.Files; -import java.nio.file.Path; import java.util.HashSet; -import java.util.List; -import java.util.Set; import org.apache.commons.codec.digest.DigestUtils; +import org.hibernate.mapping.List; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.config.annotation.method.configuration.EnableMethodSecurity; import org.springframework.validation.annotation.Validated; @@ -30,12 +27,9 @@ import jakarta.validation.Valid; import jakarta.validation.constraints.Max; import jakarta.validation.constraints.Min; import jakarta.validation.constraints.Pattern; - import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; - - @RestController @EnableMethodSecurity(securedEnabled = true, prePostEnabled = true) @RequiredArgsConstructor @@ -46,31 +40,24 @@ public class ThumbnailerApiController { private final ThumbnailerService thumbnailerService; private final Thumbnailer thumbnailer; - @PreAuthorize("hasRole('User')") @PostMapping("/get-thumbnail/id/{id}") public ThumbnailDto getThumbnailById( - @PathVariable - @Min(value = 0L, message = "Can't be negative number...") - @Max(value = 99999999L, message = "ID too large...") final int id - ) { + @PathVariable @Min(value = 0L, message = "Can't be negative number...") @Max(value = 99999999L, message = "ID too large...") final int id) { return thumbnailerService.getThumbnailById(id); } @PreAuthorize("hasRole('User')") @PostMapping("/get-thumbnail/hash/{fileHash}") public ThumbnailDto getThumbnailByHash( - @Pattern(regexp = "[a-zA-Z0-9]{32}*$") @PathVariable("fileHash") final String fileHash - ) { + @Pattern(regexp = "[a-zA-Z0-9]{32}*$") @PathVariable("fileHash") final String fileHash) { return thumbnailerService.getThumbnailByHash(fileHash); } - @PreAuthorize("hasRole('User')") @PostMapping("/get-thumbnail") public ThumbnailDto getThumbnailByIdOrHashQuery( - @Valid @RequestBody ThumbnailSearchCriteria criteria - ) { + @Valid @RequestBody ThumbnailSearchCriteria criteria) { return thumbnailerService.getThumbnailByIdOrHashQuery(criteria); } @@ -84,9 +71,8 @@ public class ThumbnailerApiController { @PreAuthorize("hasRole('User')") @PostMapping("/scan-target") public Set scanTarget( - @ModelAttribute("scan_query") ScanQuery query - ) throws IOException { - Set paths = thumbnailer.collectVideoFilePaths(query.getPath()); + @ModelAttribute("scan_query") ScanQuery query) throws IOException { + Set paths = thumbnailer.collectVideoFilePaths(query.getPath()); Set files = new HashSet<>(); thumbnailer.generateThumbnails(paths); @@ -95,11 +81,10 @@ public class ThumbnailerApiController { String fileHash = DigestUtils.sha256Hex(fileName); // files.add( path.getFileName().toString() ); - files.add( path.toString() ); + files.add(path.toString()); - thumbnailerService.saveThumbnail( - new Thumbnails(fileName, fileHash, Files.readAllBytes( Path.of("/tmp/" + fileHash + ".jpg") ) ) - ); + thumbnailerService.saveThumbnail( + new Thumbnails(fileName, fileHash, Files.readAllBytes(Path.of("/tmp/" + fileHash + ".jpg")))); } return files; diff --git a/src/main/java/com/itdominator/api/dto/ScanQuery.java b/src/main/java/com/itdominator/api/dto/ScanQuery.java index 11e79a3..88920f4 100644 --- a/src/main/java/com/itdominator/api/dto/ScanQuery.java +++ b/src/main/java/com/itdominator/api/dto/ScanQuery.java @@ -1,10 +1,8 @@ package com.itdominator.api.dto; - import lombok.Data; - @Data public class ScanQuery { private String path; -} \ No newline at end of file +} diff --git a/src/main/java/com/itdominator/api/dto/ThumbnailDto.java b/src/main/java/com/itdominator/api/dto/ThumbnailDto.java index 1285466..19a3405 100644 --- a/src/main/java/com/itdominator/api/dto/ThumbnailDto.java +++ b/src/main/java/com/itdominator/api/dto/ThumbnailDto.java @@ -1,12 +1,10 @@ package com.itdominator.api.dto; - import java.io.Serializable; import lombok.Data; import lombok.EqualsAndHashCode; - @Data @EqualsAndHashCode(onlyExplicitlyIncluded = true) public class ThumbnailDto implements Serializable { diff --git a/src/main/java/com/itdominator/api/dto/ThumbnailSearchCriteria.java b/src/main/java/com/itdominator/api/dto/ThumbnailSearchCriteria.java index 0b64d00..678049a 100644 --- a/src/main/java/com/itdominator/api/dto/ThumbnailSearchCriteria.java +++ b/src/main/java/com/itdominator/api/dto/ThumbnailSearchCriteria.java @@ -1,6 +1,5 @@ package com.itdominator.api.dto; - import java.io.Serializable; import org.springframework.validation.annotation.Validated; @@ -8,10 +7,8 @@ import org.springframework.validation.annotation.Validated; import jakarta.validation.constraints.Max; import jakarta.validation.constraints.Min; import jakarta.validation.constraints.Pattern; - import lombok.Data; - @Data @Validated public class ThumbnailSearchCriteria implements Serializable { diff --git a/src/main/java/com/itdominator/api/dto/User.java b/src/main/java/com/itdominator/api/dto/User.java index 95ef0a7..dd36b6c 100644 --- a/src/main/java/com/itdominator/api/dto/User.java +++ b/src/main/java/com/itdominator/api/dto/User.java @@ -1,11 +1,9 @@ package com.itdominator.api.dto; - import lombok.Data; - @Data public class User { private String email; private String password; -} \ No newline at end of file +} diff --git a/src/main/java/com/itdominator/api/entities/Thumbnails.java b/src/main/java/com/itdominator/api/entities/Thumbnails.java index 89b2439..317cfaa 100644 --- a/src/main/java/com/itdominator/api/entities/Thumbnails.java +++ b/src/main/java/com/itdominator/api/entities/Thumbnails.java @@ -1,6 +1,5 @@ package com.itdominator.api.entities; - import java.io.Serializable; import jakarta.persistence.Column; @@ -10,11 +9,9 @@ import jakarta.persistence.GenerationType; import jakarta.persistence.Id; import jakarta.persistence.Table; import jakarta.validation.constraints.Pattern; - import lombok.Data; import lombok.EqualsAndHashCode; - @Entity @Table @Data @@ -42,7 +39,7 @@ public class Thumbnails implements Serializable { public Thumbnails(String fileName, String fileHash, byte[] image) { this.fileName = fileName; this.fileHash = fileHash; - this.image = image; + this.image = image; } } diff --git a/src/main/java/com/itdominator/api/entities/ThumbnailsId.java b/src/main/java/com/itdominator/api/entities/ThumbnailsId.java index eb36ada..c6f0a52 100644 --- a/src/main/java/com/itdominator/api/entities/ThumbnailsId.java +++ b/src/main/java/com/itdominator/api/entities/ThumbnailsId.java @@ -1,12 +1,10 @@ package com.itdominator.api.entities; - import java.io.Serializable; import lombok.Data; import lombok.NoArgsConstructor; - @Data @NoArgsConstructor public class ThumbnailsId implements Serializable { diff --git a/src/main/java/com/itdominator/api/repositories/ThumbnailRepository.java b/src/main/java/com/itdominator/api/repositories/ThumbnailRepository.java index 8251dcf..4e468c3 100644 --- a/src/main/java/com/itdominator/api/repositories/ThumbnailRepository.java +++ b/src/main/java/com/itdominator/api/repositories/ThumbnailRepository.java @@ -1,8 +1,6 @@ package com.itdominator.api.repositories; - -import java.util.List; - +import org.hibernate.mapping.List; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query; import org.springframework.stereotype.Repository; @@ -11,8 +9,6 @@ import com.itdominator.api.dto.ThumbnailDto; import com.itdominator.api.entities.Thumbnails; import com.itdominator.api.entities.ThumbnailsId; - - @Repository public interface ThumbnailRepository extends JpaRepository { diff --git a/src/main/java/com/itdominator/api/services/ThumbnailerService.java b/src/main/java/com/itdominator/api/services/ThumbnailerService.java index 95557c5..95bbd94 100644 --- a/src/main/java/com/itdominator/api/services/ThumbnailerService.java +++ b/src/main/java/com/itdominator/api/services/ThumbnailerService.java @@ -1,8 +1,6 @@ package com.itdominator.api.services; - -import java.util.List; - +import org.hibernate.mapping.List; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; @@ -14,8 +12,6 @@ import com.itdominator.api.repositories.ThumbnailRepository; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; - - @RequiredArgsConstructor @Service @Validated @@ -24,12 +20,10 @@ public class ThumbnailerService { private final ThumbnailRepository thumbnailRepository; - public ThumbnailDto getThumbnailById(final int id) { return thumbnailRepository.findThumbnailById(id); } - public ThumbnailDto getThumbnailByHash(final String fileHash) { return thumbnailRepository.findThumbnailByHash(fileHash); } diff --git a/src/main/java/com/itdominator/api/util/Thumbnailer.java b/src/main/java/com/itdominator/api/util/Thumbnailer.java index ecbfd97..8b50f82 100644 --- a/src/main/java/com/itdominator/api/util/Thumbnailer.java +++ b/src/main/java/com/itdominator/api/util/Thumbnailer.java @@ -3,10 +3,8 @@ package com.itdominator.api.util; import java.io.IOException; import java.nio.file.DirectoryStream; import java.nio.file.Files; -import java.nio.file.Path; import java.nio.file.Paths; import java.util.HashSet; -import java.util.Set; import java.util.concurrent.TimeUnit; import org.apache.commons.codec.digest.DigestUtils; @@ -15,8 +13,6 @@ import org.springframework.stereotype.Component; import lombok.RequiredArgsConstructor; - - @Component @RequiredArgsConstructor public class Thumbnailer { @@ -27,12 +23,12 @@ public class Thumbnailer { public Set collectVideoFilePaths(final String dir) throws IOException { Set paths = new HashSet<>(); - DirectoryStream stream = Files.newDirectoryStream( Paths.get(dir) ); + DirectoryStream stream = Files.newDirectoryStream(Paths.get(dir)); for (Path path : stream) { - if ( !Files.isDirectory(path) ) { + if (!Files.isDirectory(path)) { String target = path.getFileName().toString(); for (String filterItem : videoFilter) { - if ( target.endsWith(filterItem) ) { + if (target.endsWith(filterItem)) { paths.add(path); } } @@ -46,13 +42,16 @@ public class Thumbnailer { for (Path path : paths) { String fileName = path.getFileName().toString(); String fileHash = DigestUtils.sha256Hex(fileName); - generateThumbnail(path.toString(), "/tmp/" + fileHash + ".jpg","65%"); + generateThumbnail(path.toString(), "/tmp/" + fileHash + ".jpg", "65%"); } } - // proc = subprocess.Popen([self.FFMPG_THUMBNLR, "-t", scrub_percent, "-s", "300", "-c", "jpg", "-i", full_path, "-o", hash_img_path]) - private void generateThumbnail(final String full_path, final String hash_img_path, final String scrub_percent) throws IOException { - ProcessBuilder pb = new ProcessBuilder("ffmpegthumbnailer", "-t", scrub_percent, "-s", "300", "-c", "jpg", "-i", full_path, "-o", hash_img_path); + // proc = subprocess.Popen([self.FFMPG_THUMBNLR, "-t", scrub_percent, "-s", + // "300", "-c", "jpg", "-i", full_path, "-o", hash_img_path]) + private void generateThumbnail(final String full_path, final String hash_img_path, final String scrub_percent) + throws IOException { + ProcessBuilder pb = new ProcessBuilder("ffmpegthumbnailer", "-t", scrub_percent, "-s", "300", "-c", "jpg", "-i", + full_path, "-o", hash_img_path); Process p = pb.start(); while (p.isAlive()) { try {