forked from j62/ctbrec
Add getSanitizedName to Model
This method provides returns a name, which is safe to use with filesystem I/O. Fc2Model returns the model ID for this.
This commit is contained in:
parent
75a625bbe0
commit
e1eeb830da
|
@ -49,6 +49,11 @@ public class JavaFxModel implements Model {
|
|||
delegate.setName(name);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getSanitizedNamed() {
|
||||
return delegate.getSanitizedNamed();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getPreview() {
|
||||
return delegate.getPreview();
|
||||
|
|
|
@ -349,7 +349,7 @@ public class RecordedModelsTab extends Tab implements TabSelectionListener {
|
|||
.peek(fxm -> {
|
||||
for (Recording recording : recordings) {
|
||||
if(recording.getStatus() == Recording.State.RECORDING &&
|
||||
recording.getModelName().equals(fxm.getName()))
|
||||
recording.getModelName().equals(fxm.getSanitizedNamed()))
|
||||
{
|
||||
fxm.getRecordingProperty().set(true);
|
||||
break;
|
||||
|
|
|
@ -66,6 +66,12 @@ public abstract class AbstractModel implements Model {
|
|||
this.displayName = name;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getSanitizedNamed() {
|
||||
String sanitizedName = getName();
|
||||
return sanitizedName.replace(' ', '_').replace('\\', '_').replace('/', '_');
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getPreview() {
|
||||
return preview;
|
||||
|
|
|
@ -137,16 +137,16 @@ public class Config {
|
|||
File dirForRecording = getDirForRecording(model);
|
||||
SimpleDateFormat sdf = new SimpleDateFormat(RECORDING_DATE_FORMAT);
|
||||
String startTime = sdf.format(new Date());
|
||||
File targetFile = new File(dirForRecording, model.getName() + '_' + startTime + ".ts");
|
||||
File targetFile = new File(dirForRecording, model.getSanitizedNamed() + '_' + startTime + ".ts");
|
||||
return targetFile;
|
||||
}
|
||||
|
||||
private File getDirForRecording(Model model) {
|
||||
switch(getSettings().recordingsDirStructure) {
|
||||
case ONE_PER_MODEL:
|
||||
return new File(getSettings().recordingsDir, model.getName());
|
||||
return new File(getSettings().recordingsDir, model.getSanitizedNamed());
|
||||
case ONE_PER_RECORDING:
|
||||
File modelDir = new File(getSettings().recordingsDir, model.getName());
|
||||
File modelDir = new File(getSettings().recordingsDir, model.getSanitizedNamed());
|
||||
SimpleDateFormat sdf = new SimpleDateFormat(RECORDING_DATE_FORMAT);
|
||||
String startTime = sdf.format(new Date());
|
||||
return new File(modelDir, startTime);
|
||||
|
|
|
@ -46,6 +46,11 @@ public interface Model extends Comparable<Model> {
|
|||
|
||||
public void setName(String name);
|
||||
|
||||
/**
|
||||
* Returns a name, which is safe to use with the filesystem
|
||||
*/
|
||||
public String getSanitizedNamed();
|
||||
|
||||
public String getPreview();
|
||||
|
||||
public void setPreview(String preview);
|
||||
|
|
|
@ -59,7 +59,7 @@ public interface Recorder {
|
|||
List<Recording> recordings = getRecordings();
|
||||
return getModels().stream().filter(m -> {
|
||||
for (Recording recording : recordings) {
|
||||
if (recording.getStatus() == Recording.State.RECORDING && recording.getModelName().equals(m.getName())) {
|
||||
if (recording.getStatus() == Recording.State.RECORDING && recording.getModelName().equals(m.getSanitizedNamed())) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -58,7 +58,7 @@ public class HlsDownload extends AbstractHlsDownload {
|
|||
super.model = model;
|
||||
SimpleDateFormat sdf = new SimpleDateFormat(Config.RECORDING_DATE_FORMAT);
|
||||
String startTime = sdf.format(new Date());
|
||||
Path modelDir = FileSystems.getDefault().getPath(config.getSettings().recordingsDir, model.getName());
|
||||
Path modelDir = FileSystems.getDefault().getPath(config.getSettings().recordingsDir, model.getSanitizedNamed());
|
||||
downloadDir = FileSystems.getDefault().getPath(modelDir.toString(), startTime);
|
||||
|
||||
if(!model.isOnline()) {
|
||||
|
|
|
@ -394,4 +394,9 @@ public class Fc2Model extends AbstractModel {
|
|||
public void writeSiteSpecificData(JsonWriter writer) throws IOException {
|
||||
writer.name("id").value(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getSanitizedNamed() {
|
||||
return id;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue