Added support for external config file
This commit is contained in:
parent
17daad154c
commit
877e7908dd
@ -1,7 +1,11 @@
|
||||
package com.annimon.voicyanski;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Paths;
|
||||
import java.util.Locale;
|
||||
import java.util.Properties;
|
||||
import java.util.ResourceBundle;
|
||||
import javafx.application.Application;
|
||||
import javafx.fxml.FXMLLoader;
|
||||
@ -11,6 +15,8 @@ import javafx.stage.Stage;
|
||||
public class Main extends Application {
|
||||
|
||||
private static ResourceBundle resources, config;
|
||||
Properties props = new Properties();
|
||||
public static String locale, chatId, botToken, stereo, bitrate, samplerate;
|
||||
|
||||
public static ResourceBundle getResources() {
|
||||
return resources;
|
||||
@ -20,14 +26,47 @@ public class Main extends Application {
|
||||
return config;
|
||||
}
|
||||
|
||||
private String getVar(String key) {
|
||||
String result = props.getProperty(key);
|
||||
return result != null ? result : config.getString(key);
|
||||
}
|
||||
|
||||
private void setupVars() {
|
||||
|
||||
config = ResourceBundle.getBundle("app");
|
||||
try {
|
||||
InputStream extConfig = Files.newInputStream(Paths.get(
|
||||
System.getProperty("user.home"),
|
||||
".config",
|
||||
"voicyanski.conf"));
|
||||
props.load(extConfig);
|
||||
extConfig.close();
|
||||
|
||||
locale = getVar("locale");
|
||||
chatId = getVar("telegram-chat-id");
|
||||
botToken = getVar("telegram-bot-token");
|
||||
stereo = getVar("encode-stereo");
|
||||
bitrate = getVar("encode-bitrate");
|
||||
samplerate = getVar("encode-samplerate");
|
||||
} catch (IOException ex) {
|
||||
locale = config.getString("locale");
|
||||
chatId = config.getString("telegram-chat-id");
|
||||
botToken = config.getString("telegram-bot-token");
|
||||
stereo = config.getString("encode-stereo");
|
||||
bitrate = config.getString("encode-bitrate");
|
||||
samplerate = config.getString("encode-samplerate");
|
||||
|
||||
}
|
||||
if (locale != null) {
|
||||
Locale.setDefault(new Locale(locale));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void start(Stage stage) throws Exception {
|
||||
Main.config = ResourceBundle.getBundle("app");
|
||||
if (Main.config.containsKey("locale")) {
|
||||
Locale.setDefault(new Locale(Main.config.getString("locale")));
|
||||
}
|
||||
setupVars();
|
||||
Main.resources = ResourceBundle.getBundle("locales.Language", Locale.getDefault());
|
||||
|
||||
final FXMLLoader loader = new FXMLLoader(
|
||||
getClass().getResource("/fxml/Main.fxml"), Main.resources);
|
||||
|
||||
|
@ -22,12 +22,12 @@ public final class OpusConvertTask implements UnaryOperator<ClipPartData> {
|
||||
"-ss", Double.toString(data.startTime),
|
||||
"-i", data.metadata.file.getAbsolutePath(),
|
||||
"-t", Double.toString(data.endTime - data.startTime),
|
||||
"-ac", Main.getConfig().getString("encode-stereo").equalsIgnoreCase("true") ? "2" : "1",
|
||||
"-ac", Main.stereo.equalsIgnoreCase("true") ? "2" : "1",
|
||||
"-map", "0:a",
|
||||
"-codec:a", "libopus",
|
||||
"-b:a", Main.getConfig().getString("encode-bitrate"),
|
||||
"-b:a", Main.bitrate,
|
||||
"-vbr", "off",
|
||||
"-ar", Main.getConfig().getString("encode-samplerate"),
|
||||
"-ar", Main.samplerate,
|
||||
data.outputAudioFile.getAbsolutePath()
|
||||
);
|
||||
final Process ffmpeg = pb.start();
|
||||
|
@ -25,13 +25,13 @@ public final class SendTelegramVoiceTask implements Function<ClipPartData, Boole
|
||||
if (data.metadata.hasTrackInfo()) {
|
||||
builder.addFormDataPart("caption", data.metadata.toString());
|
||||
}
|
||||
builder.addFormDataPart("chat_id", Main.getConfig().getString("telegram-chat-id"));
|
||||
builder.addFormDataPart("chat_id", Main.chatId);
|
||||
builder.addFormDataPart("voice", data.metadata.file.getName(),
|
||||
RequestBody.create(MEDIA_TYPE_OGG, data.outputAudioFile));
|
||||
final RequestBody requestBody = builder.build();
|
||||
|
||||
final Request request = new Request.Builder()
|
||||
.url(String.format(URL_FORMAT, Main.getConfig().getString("telegram-bot-token"), "sendVoice"))
|
||||
.url(String.format(URL_FORMAT, Main.botToken, "sendVoice"))
|
||||
.post(requestBody)
|
||||
.build();
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user