Updated impoprt order
This commit is contained in:
parent
8487384eda
commit
b56f4df98a
|
@ -0,0 +1,78 @@
|
|||
<factorypath>
|
||||
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-web/3.1.3/spring-boot-starter-web-3.1.3.jar" enabled="true" runInBatchMode="false"/>
|
||||
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter/3.1.3/spring-boot-starter-3.1.3.jar" enabled="true" runInBatchMode="false"/>
|
||||
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot/3.1.3/spring-boot-3.1.3.jar" enabled="true" runInBatchMode="false"/>
|
||||
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-autoconfigure/3.1.3/spring-boot-autoconfigure-3.1.3.jar" enabled="true" runInBatchMode="false"/>
|
||||
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-logging/3.1.3/spring-boot-starter-logging-3.1.3.jar" enabled="true" runInBatchMode="false"/>
|
||||
<factorypathentry kind="VARJAR" id="M2_REPO/ch/qos/logback/logback-classic/1.4.11/logback-classic-1.4.11.jar" enabled="true" runInBatchMode="false"/>
|
||||
<factorypathentry kind="VARJAR" id="M2_REPO/ch/qos/logback/logback-core/1.4.11/logback-core-1.4.11.jar" enabled="true" runInBatchMode="false"/>
|
||||
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/logging/log4j/log4j-to-slf4j/2.20.0/log4j-to-slf4j-2.20.0.jar" enabled="true" runInBatchMode="false"/>
|
||||
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/logging/log4j/log4j-api/2.20.0/log4j-api-2.20.0.jar" enabled="true" runInBatchMode="false"/>
|
||||
<factorypathentry kind="VARJAR" id="M2_REPO/org/slf4j/jul-to-slf4j/2.0.7/jul-to-slf4j-2.0.7.jar" enabled="true" runInBatchMode="false"/>
|
||||
<factorypathentry kind="VARJAR" id="M2_REPO/org/yaml/snakeyaml/1.33/snakeyaml-1.33.jar" enabled="true" runInBatchMode="false"/>
|
||||
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-json/3.1.3/spring-boot-starter-json-3.1.3.jar" enabled="true" runInBatchMode="false"/>
|
||||
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/core/jackson-databind/2.15.2/jackson-databind-2.15.2.jar" enabled="true" runInBatchMode="false"/>
|
||||
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/core/jackson-annotations/2.15.2/jackson-annotations-2.15.2.jar" enabled="true" runInBatchMode="false"/>
|
||||
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/core/jackson-core/2.15.2/jackson-core-2.15.2.jar" enabled="true" runInBatchMode="false"/>
|
||||
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/datatype/jackson-datatype-jdk8/2.15.2/jackson-datatype-jdk8-2.15.2.jar" enabled="true" runInBatchMode="false"/>
|
||||
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/datatype/jackson-datatype-jsr310/2.15.2/jackson-datatype-jsr310-2.15.2.jar" enabled="true" runInBatchMode="false"/>
|
||||
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/module/jackson-module-parameter-names/2.15.2/jackson-module-parameter-names-2.15.2.jar" enabled="true" runInBatchMode="false"/>
|
||||
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-tomcat/3.1.3/spring-boot-starter-tomcat-3.1.3.jar" enabled="true" runInBatchMode="false"/>
|
||||
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/tomcat/embed/tomcat-embed-websocket/10.1.12/tomcat-embed-websocket-10.1.12.jar" enabled="true" runInBatchMode="false"/>
|
||||
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-web/6.0.11/spring-web-6.0.11.jar" enabled="true" runInBatchMode="false"/>
|
||||
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-webmvc/6.0.11/spring-webmvc-6.0.11.jar" enabled="true" runInBatchMode="false"/>
|
||||
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-security/3.1.3/spring-boot-starter-security-3.1.3.jar" enabled="true" runInBatchMode="false"/>
|
||||
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-aop/6.0.11/spring-aop-6.0.11.jar" enabled="true" runInBatchMode="false"/>
|
||||
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/security/spring-security-config/6.1.3/spring-security-config-6.1.3.jar" enabled="true" runInBatchMode="false"/>
|
||||
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/security/spring-security-web/6.1.3/spring-security-web-6.1.3.jar" enabled="true" runInBatchMode="false"/>
|
||||
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-data-jpa/3.1.3/spring-boot-starter-data-jpa-3.1.3.jar" enabled="true" runInBatchMode="false"/>
|
||||
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-aop/3.1.3/spring-boot-starter-aop-3.1.3.jar" enabled="true" runInBatchMode="false"/>
|
||||
<factorypathentry kind="VARJAR" id="M2_REPO/org/aspectj/aspectjweaver/1.9.20/aspectjweaver-1.9.20.jar" enabled="true" runInBatchMode="false"/>
|
||||
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-jdbc/3.1.3/spring-boot-starter-jdbc-3.1.3.jar" enabled="true" runInBatchMode="false"/>
|
||||
<factorypathentry kind="VARJAR" id="M2_REPO/com/zaxxer/HikariCP/5.0.1/HikariCP-5.0.1.jar" enabled="true" runInBatchMode="false"/>
|
||||
<factorypathentry kind="VARJAR" id="M2_REPO/org/hibernate/orm/hibernate-core/6.3.1.Final/hibernate-core-6.3.1.Final.jar" enabled="true" runInBatchMode="false"/>
|
||||
<factorypathentry kind="VARJAR" id="M2_REPO/jakarta/transaction/jakarta.transaction-api/2.0.1/jakarta.transaction-api-2.0.1.jar" enabled="true" runInBatchMode="false"/>
|
||||
<factorypathentry kind="VARJAR" id="M2_REPO/org/hibernate/common/hibernate-commons-annotations/6.0.6.Final/hibernate-commons-annotations-6.0.6.Final.jar" enabled="true" runInBatchMode="false"/>
|
||||
<factorypathentry kind="VARJAR" id="M2_REPO/io/smallrye/jandex/3.1.2/jandex-3.1.2.jar" enabled="true" runInBatchMode="false"/>
|
||||
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/classmate/1.5.1/classmate-1.5.1.jar" enabled="true" runInBatchMode="false"/>
|
||||
<factorypathentry kind="VARJAR" id="M2_REPO/net/bytebuddy/byte-buddy/1.14.6/byte-buddy-1.14.6.jar" enabled="true" runInBatchMode="false"/>
|
||||
<factorypathentry kind="VARJAR" id="M2_REPO/org/glassfish/jaxb/jaxb-runtime/4.0.3/jaxb-runtime-4.0.3.jar" enabled="true" runInBatchMode="false"/>
|
||||
<factorypathentry kind="VARJAR" id="M2_REPO/org/glassfish/jaxb/jaxb-core/4.0.3/jaxb-core-4.0.3.jar" enabled="true" runInBatchMode="false"/>
|
||||
<factorypathentry kind="VARJAR" id="M2_REPO/org/eclipse/angus/angus-activation/2.0.1/angus-activation-2.0.1.jar" enabled="true" runInBatchMode="false"/>
|
||||
<factorypathentry kind="VARJAR" id="M2_REPO/org/glassfish/jaxb/txw2/4.0.3/txw2-4.0.3.jar" enabled="true" runInBatchMode="false"/>
|
||||
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/istack/istack-commons-runtime/4.1.2/istack-commons-runtime-4.1.2.jar" enabled="true" runInBatchMode="false"/>
|
||||
<factorypathentry kind="VARJAR" id="M2_REPO/jakarta/inject/jakarta.inject-api/2.0.1/jakarta.inject-api-2.0.1.jar" enabled="true" runInBatchMode="false"/>
|
||||
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-aspects/6.0.11/spring-aspects-6.0.11.jar" enabled="true" runInBatchMode="false"/>
|
||||
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-jdbc/6.0.11/spring-jdbc-6.0.11.jar" enabled="true" runInBatchMode="false"/>
|
||||
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-core/6.0.11/spring-core-6.0.11.jar" enabled="true" runInBatchMode="false"/>
|
||||
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-jcl/6.0.11/spring-jcl-6.0.11.jar" enabled="true" runInBatchMode="false"/>
|
||||
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-tx/6.0.11/spring-tx-6.0.11.jar" enabled="true" runInBatchMode="false"/>
|
||||
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-beans/6.0.11/spring-beans-6.0.11.jar" enabled="true" runInBatchMode="false"/>
|
||||
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/data/spring-data-jpa/3.1.3/spring-data-jpa-3.1.3.jar" enabled="true" runInBatchMode="false"/>
|
||||
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/data/spring-data-commons/3.1.3/spring-data-commons-3.1.3.jar" enabled="true" runInBatchMode="false"/>
|
||||
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-orm/6.0.11/spring-orm-6.0.11.jar" enabled="true" runInBatchMode="false"/>
|
||||
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-context/6.0.11/spring-context-6.0.11.jar" enabled="true" runInBatchMode="false"/>
|
||||
<factorypathentry kind="VARJAR" id="M2_REPO/org/antlr/antlr4-runtime/4.10.1/antlr4-runtime-4.10.1.jar" enabled="true" runInBatchMode="false"/>
|
||||
<factorypathentry kind="VARJAR" id="M2_REPO/jakarta/annotation/jakarta.annotation-api/2.1.1/jakarta.annotation-api-2.1.1.jar" enabled="true" runInBatchMode="false"/>
|
||||
<factorypathentry kind="VARJAR" id="M2_REPO/org/slf4j/slf4j-api/2.0.7/slf4j-api-2.0.7.jar" enabled="true" runInBatchMode="false"/>
|
||||
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/security/spring-security-core/6.1.3/spring-security-core-6.1.3.jar" enabled="true" runInBatchMode="false"/>
|
||||
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/security/spring-security-crypto/6.1.3/spring-security-crypto-6.1.3.jar" enabled="true" runInBatchMode="false"/>
|
||||
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-expression/6.0.11/spring-expression-6.0.11.jar" enabled="true" runInBatchMode="false"/>
|
||||
<factorypathentry kind="VARJAR" id="M2_REPO/io/micrometer/micrometer-observation/1.11.3/micrometer-observation-1.11.3.jar" enabled="true" runInBatchMode="false"/>
|
||||
<factorypathentry kind="VARJAR" id="M2_REPO/io/micrometer/micrometer-commons/1.11.3/micrometer-commons-1.11.3.jar" enabled="true" runInBatchMode="false"/>
|
||||
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/tomcat/embed/tomcat-embed-jasper/10.1.12/tomcat-embed-jasper-10.1.12.jar" enabled="true" runInBatchMode="false"/>
|
||||
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/tomcat/embed/tomcat-embed-core/10.1.12/tomcat-embed-core-10.1.12.jar" enabled="true" runInBatchMode="false"/>
|
||||
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/tomcat/tomcat-annotations-api/10.1.12/tomcat-annotations-api-10.1.12.jar" enabled="true" runInBatchMode="false"/>
|
||||
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/tomcat/embed/tomcat-embed-el/10.1.12/tomcat-embed-el-10.1.12.jar" enabled="true" runInBatchMode="false"/>
|
||||
<factorypathentry kind="VARJAR" id="M2_REPO/org/eclipse/jdt/ecj/3.33.0/ecj-3.33.0.jar" enabled="true" runInBatchMode="false"/>
|
||||
<factorypathentry kind="VARJAR" id="M2_REPO/com/h2database/h2/2.1.214/h2-2.1.214.jar" enabled="true" runInBatchMode="false"/>
|
||||
<factorypathentry kind="VARJAR" id="M2_REPO/org/hibernate/orm/hibernate-community-dialects/6.1.6.Final/hibernate-community-dialects-6.1.6.Final.jar" enabled="true" runInBatchMode="false"/>
|
||||
<factorypathentry kind="VARJAR" id="M2_REPO/org/jboss/logging/jboss-logging/3.5.3.Final/jboss-logging-3.5.3.Final.jar" enabled="true" runInBatchMode="false"/>
|
||||
<factorypathentry kind="VARJAR" id="M2_REPO/org/xerial/sqlite-jdbc/3.30.1/sqlite-jdbc-3.30.1.jar" enabled="true" runInBatchMode="false"/>
|
||||
<factorypathentry kind="VARJAR" id="M2_REPO/org/projectlombok/lombok/1.18.28/lombok-1.18.28.jar" enabled="true" runInBatchMode="false"/>
|
||||
<factorypathentry kind="VARJAR" id="M2_REPO/jakarta/persistence/jakarta.persistence-api/3.1.0/jakarta.persistence-api-3.1.0.jar" enabled="true" runInBatchMode="false"/>
|
||||
<factorypathentry kind="VARJAR" id="M2_REPO/jakarta/validation/jakarta.validation-api/3.0.2/jakarta.validation-api-3.0.2.jar" enabled="true" runInBatchMode="false"/>
|
||||
<factorypathentry kind="VARJAR" id="M2_REPO/commons-codec/commons-codec/1.11/commons-codec-1.11.jar" enabled="true" runInBatchMode="false"/>
|
||||
<factorypathentry kind="VARJAR" id="M2_REPO/jakarta/xml/bind/jakarta.xml.bind-api/4.0.0/jakarta.xml.bind-api-4.0.0.jar" enabled="true" runInBatchMode="false"/>
|
||||
<factorypathentry kind="VARJAR" id="M2_REPO/jakarta/activation/jakarta.activation-api/2.1.2/jakarta.activation-api-2.1.2.jar" enabled="true" runInBatchMode="false"/>
|
||||
</factorypath>
|
|
@ -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/<project>=UTF-8
|
|
@ -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
|
|
@ -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
|
|
@ -0,0 +1,4 @@
|
|||
activeProfiles=
|
||||
eclipse.preferences.version=1
|
||||
resolveWorkspaceProjects=true
|
||||
version=1
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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());
|
||||
|
||||
|
|
|
@ -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<String> scanTarget(
|
||||
@ModelAttribute("scan_query") ScanQuery query
|
||||
) throws IOException {
|
||||
Set<Path> paths = thumbnailer.collectVideoFilePaths(query.getPath());
|
||||
@ModelAttribute("scan_query") ScanQuery query) throws IOException {
|
||||
Set<Path> paths = thumbnailer.collectVideoFilePaths(query.getPath());
|
||||
Set<String> 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") ) )
|
||||
);
|
||||
new Thumbnails(fileName, fileHash, Files.readAllBytes(Path.of("/tmp/" + fileHash + ".jpg"))));
|
||||
}
|
||||
|
||||
return files;
|
||||
|
|
|
@ -1,9 +1,7 @@
|
|||
package com.itdominator.api.dto;
|
||||
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
|
||||
@Data
|
||||
public class ScanQuery {
|
||||
private String path;
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -1,9 +1,7 @@
|
|||
package com.itdominator.api.dto;
|
||||
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
|
||||
@Data
|
||||
public class User {
|
||||
private String email;
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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<Thumbnails, ThumbnailsId> {
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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<Path> collectVideoFilePaths(final String dir) throws IOException {
|
||||
Set<Path> paths = new HashSet<>();
|
||||
|
||||
DirectoryStream<Path> stream = Files.newDirectoryStream( Paths.get(dir) );
|
||||
DirectoryStream<Path> 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 {
|
||||
|
|
Loading…
Reference in New Issue