Merged in Senderman/voicyanski/new (pull request #1)

Added support for external config file
This commit is contained in:
Фёдор Долетов 2018-03-30 07:53:52 +00:00 committed by Victor Melnik
commit 5dd7d03053
3 changed files with 50 additions and 11 deletions

View File

@ -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);

View File

@ -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();

View File

@ -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();