Store minimal browser config in ctbrec's config dir

This commit is contained in:
0xb00bface 2020-12-06 17:59:07 +01:00
parent 793f6d371f
commit 281d70d29b
3 changed files with 23 additions and 4 deletions

View File

@ -7,6 +7,7 @@
* Renamed settings for Chaturbate's user name and password
* Add setting to split recordings by size
* Fixed moving of segment recordings on the server (post-processing)
* Minimal browser config is now stored in ctbrec's config directory
3.10.6
========================

View File

@ -1,11 +1,15 @@
package ctbrec.ui;
import static java.nio.charset.StandardCharsets.*;
import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.Socket;
import java.util.Arrays;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;
import java.util.function.Consumer;
@ -47,7 +51,9 @@ public class ExternalBrowser implements AutoCloseable {
addProxyConfig(jsonConfig.getJSONObject("config"));
p = new ProcessBuilder(OS.getBrowserCommand()).start();
File configDir = new File(Config.getInstance().getConfigDir(), "ctbrec-minimal-browser");
String[] cmdline = OS.getBrowserCommand(configDir.getCanonicalPath());
p = new ProcessBuilder(cmdline).start();
if (LOG.isTraceEnabled()) {
new Thread(new StreamRedirector(p.getInputStream(), System.out)).start();
new Thread(new StreamRedirector(p.getErrorStream(), System.err)).start();
@ -55,7 +61,7 @@ public class ExternalBrowser implements AutoCloseable {
new Thread(new StreamRedirector(p.getInputStream(), OutputStream.nullOutputStream())).start();
new Thread(new StreamRedirector(p.getErrorStream(), OutputStream.nullOutputStream())).start();
}
LOG.debug("Browser started");
LOG.debug("Browser started: {}", Arrays.toString(cmdline));
connectToRemoteControlSocket();
while (!browserReady) {
@ -68,7 +74,7 @@ public class ExternalBrowser implements AutoCloseable {
} else {
LOG.debug("Connected to remote control server. Sending config");
}
out.write(jsonConfig.toString().getBytes("utf-8"));
out.write(jsonConfig.toString().getBytes(UTF_8));
out.write('\n');
out.flush();
@ -116,7 +122,7 @@ public class ExternalBrowser implements AutoCloseable {
//LOG.debug("Executing JS {}", javaScript);
JSONObject script = new JSONObject();
script.put("execute", javaScript);
out.write(script.toString().getBytes("utf-8"));
out.write(script.toString().getBytes(UTF_8));
out.write('\n');
out.flush();
if(javaScript.equals("quit")) {

View File

@ -17,6 +17,7 @@ import java.util.List;
import java.util.Objects;
import java.util.Optional;
import org.apache.commons.io.FileUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ -145,6 +146,17 @@ public class Config {
settings.splitRecordingsAfterSecs = settings.splitRecordings;
settings.splitRecordings = 0;
}
// migrate old config from ctbrec-minimal browser
File oldLocation = new File(OS.getConfigDir().getParentFile(), "ctbrec-minimal-browser");
if (oldLocation.exists()) {
File newLocation = new File(getConfigDir(), oldLocation.getName());
try {
LOG.debug("Moving minimal browser config {} --> {}", oldLocation, newLocation);
FileUtils.moveDirectory(oldLocation, newLocation);
} catch (IOException e) {
LOG.error("Couldn't migrate minimal browser config location", e);
}
}
}
private void makeBackup(File source) {