mirror of
https://github.com/RatzzFatzz/MKVAudioSubtitleChanger.git
synced 2026-02-11 10:05:58 +01:00
Change track selection
This commit is contained in:
@@ -1,10 +1,12 @@
|
||||
package at.pcgamingfreaks.mkvaudiosubtitlechanger;
|
||||
|
||||
import at.pcgamingfreaks.mkvaudiosubtitlechanger.impl.FileCollector;
|
||||
import at.pcgamingfreaks.mkvaudiosubtitlechanger.impl.FileProcessor;
|
||||
import at.pcgamingfreaks.mkvaudiosubtitlechanger.model.AttributeConfig;
|
||||
import at.pcgamingfreaks.mkvaudiosubtitlechanger.intimpl.ConfigProcessor;
|
||||
import at.pcgamingfreaks.mkvaudiosubtitlechanger.intimpl.MkvFileCollector;
|
||||
import at.pcgamingfreaks.mkvaudiosubtitlechanger.impl.ConfigProcessorOld;
|
||||
import at.pcgamingfreaks.mkvaudiosubtitlechanger.model.FileAttribute;
|
||||
import at.pcgamingfreaks.mkvaudiosubtitlechanger.config.Config;
|
||||
import at.pcgamingfreaks.mkvaudiosubtitlechanger.model.FileInfoDto;
|
||||
import lombok.SneakyThrows;
|
||||
import lombok.extern.log4j.Log4j2;
|
||||
|
||||
@@ -16,19 +18,30 @@ import java.util.concurrent.*;
|
||||
public class AttributeUpdaterKernel {
|
||||
|
||||
ExecutorService executor = Executors.newFixedThreadPool(Config.getInstance().getThreadCount());
|
||||
MkvFileCollector collector = new MkvFileCollector();
|
||||
FileCollector collector;
|
||||
FileProcessor processor;
|
||||
int filesChangedAmount = 0;
|
||||
int filesNotChangedAmount = 0;
|
||||
long runtime = 0;
|
||||
|
||||
public AttributeUpdaterKernel(FileCollector collector, FileProcessor processor) {
|
||||
this.collector = collector;
|
||||
this.processor = processor;
|
||||
}
|
||||
|
||||
@SneakyThrows
|
||||
public void execute() {
|
||||
long beforeTimer = System.currentTimeMillis();
|
||||
|
||||
collector.loadFiles(Config.getInstance().getLibraryPath())
|
||||
.forEach(file -> executor.submit(() -> process(file)));
|
||||
|
||||
|
||||
List<File> files = collector.loadFiles(Config.getInstance().getLibraryPath());
|
||||
files.forEach(file -> executor.submit(() -> process(file)));
|
||||
executor.shutdown();
|
||||
executor.awaitTermination(1, TimeUnit.DAYS);
|
||||
|
||||
|
||||
|
||||
runtime = System.currentTimeMillis() - beforeTimer;
|
||||
|
||||
System.out.printf("%nFiles %schanged: %s%n",
|
||||
@@ -40,13 +53,13 @@ public class AttributeUpdaterKernel {
|
||||
System.out.printf("Runtime: %ss%n", runtime / 1000);
|
||||
}
|
||||
|
||||
private void process(File file) {
|
||||
List<FileAttribute> attributes = collector.loadAttributes(file);
|
||||
private void processOld(File file) {
|
||||
List<FileAttribute> attributes = processor.loadAttributes(file);
|
||||
boolean fileHasChanged = false;
|
||||
|
||||
if (attributes.isEmpty()) return;
|
||||
for(AttributeConfig config : Config.getInstance().getAttributeConfig()){
|
||||
fileHasChanged = new ConfigProcessor(config).processConfig(file, attributes);
|
||||
fileHasChanged = new ConfigProcessorOld(config).processConfig(file, attributes);
|
||||
if(fileHasChanged) break;
|
||||
}
|
||||
if(!fileHasChanged){
|
||||
@@ -57,4 +70,12 @@ public class AttributeUpdaterKernel {
|
||||
}
|
||||
System.out.print(".");
|
||||
}
|
||||
|
||||
private void process(File file) {
|
||||
List<FileAttribute> attributes = processor.loadAttributes(file);
|
||||
FileInfoDto fileInfo = processor.filterAttributes(attributes);
|
||||
if (fileInfo.isChangeNecessary() && !Config.getInstance().isSafeMode()) {
|
||||
processor.update(file, fileInfo);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user