Reset state to WAITING for FAILED, PP and GENERATING_PLAYLIST on start

This commit is contained in:
0xboobface 2019-12-28 15:42:45 +01:00
parent a59313df49
commit 6fcbdab174
1 changed files with 9 additions and 8 deletions

View File

@ -1,10 +1,11 @@
package ctbrec.recorder; package ctbrec.recorder;
import static ctbrec.Recording.State.*;
import static java.nio.charset.StandardCharsets.*;
import static java.nio.file.StandardOpenOption.*; import static java.nio.file.StandardOpenOption.*;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.nio.file.Files; import java.nio.file.Files;
import java.time.Instant; import java.time.Instant;
import java.util.ArrayList; import java.util.ArrayList;
@ -26,7 +27,7 @@ import ctbrec.io.ModelJsonAdapter;
import ctbrec.sites.Site; import ctbrec.sites.Site;
public class RecordingManager { public class RecordingManager {
private static final transient Logger LOG = LoggerFactory.getLogger(RecordingManager.class); private static final Logger LOG = LoggerFactory.getLogger(RecordingManager.class);
private Config config; private Config config;
private Moshi moshi; private Moshi moshi;
@ -45,7 +46,7 @@ public class RecordingManager {
loadRecordings(); loadRecordings();
} }
public void add(Recording rec) throws UnsupportedEncodingException, IOException { public void add(Recording rec) throws IOException {
saveRecording(rec); saveRecording(rec);
recordingsLock.lock(); recordingsLock.lock();
try { try {
@ -55,14 +56,14 @@ public class RecordingManager {
} }
} }
public void saveRecording(Recording rec) throws UnsupportedEncodingException, IOException { public void saveRecording(Recording rec) throws IOException {
String json = adapter.toJson(rec); String json = adapter.toJson(rec);
File recordingsMetaDir = getDir(); File recordingsMetaDir = getDir();
String filename = rec.toString() + ".json"; String filename = rec.toString() + ".json";
File recordingMetaData = new File(recordingsMetaDir, filename); File recordingMetaData = new File(recordingsMetaDir, filename);
rec.setMetaDataFile(recordingMetaData.getAbsolutePath()); rec.setMetaDataFile(recordingMetaData.getAbsolutePath());
Files.createDirectories(recordingsMetaDir.toPath()); Files.createDirectories(recordingsMetaDir.toPath());
Files.write(recordingMetaData.toPath(), json.getBytes("utf-8"), CREATE, WRITE, TRUNCATE_EXISTING); Files.write(recordingMetaData.toPath(), json.getBytes(UTF_8), CREATE, WRITE, TRUNCATE_EXISTING);
} }
private void loadRecordings() throws IOException { private void loadRecordings() throws IOException {
@ -70,11 +71,11 @@ public class RecordingManager {
File[] metaFiles = recordingsMetaDir.listFiles((file, name) -> name.endsWith(".json")); File[] metaFiles = recordingsMetaDir.listFiles((file, name) -> name.endsWith(".json"));
if (metaFiles != null) { if (metaFiles != null) {
for (File file : metaFiles) { for (File file : metaFiles) {
String json = new String(Files.readAllBytes(file.toPath()), "utf-8"); String json = new String(Files.readAllBytes(file.toPath()), UTF_8);
try { try {
Recording recording = adapter.fromJson(json); Recording recording = adapter.fromJson(json);
if (recording.getStatus() == State.RECORDING) { if (recording.getStatus() == RECORDING || recording.getStatus() == GENERATING_PLAYLIST || recording.getStatus() == POST_PROCESSING) {
recording.setStatus(State.WAITING); recording.setStatus(WAITING);
} }
if (recordingExists(recording)) { if (recordingExists(recording)) {
recordings.add(recording); recordings.add(recording);