Reset state to WAITING for FAILED, PP and GENERATING_PLAYLIST on start
This commit is contained in:
parent
a59313df49
commit
6fcbdab174
|
@ -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);
|
||||||
|
|
Loading…
Reference in New Issue