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 {