aboutsummaryrefslogtreecommitdiff
path: root/src/Config.cpp
diff options
context:
space:
mode:
authordec05eba <dec05eba@protonmail.com>2022-09-08 20:08:42 +0200
committerdec05eba <dec05eba@protonmail.com>2022-09-08 20:09:05 +0200
commit215ac920166087ffcf917c293caf6497adf50c3d (patch)
tree3294f0d19c45d3477049380ed04f5b320e879e71 /src/Config.cpp
parente3a151d5d2a71126c275567862a0cd2d471b42bc (diff)
Add matrix known servers to config file instead of hardcoded, copy example config and readme to /usr/share/quickmedia
Diffstat (limited to 'src/Config.cpp')
-rw-r--r--src/Config.cpp44
1 files changed, 44 insertions, 0 deletions
diff --git a/src/Config.cpp b/src/Config.cpp
index 50cab3c..c6c2a29 100644
--- a/src/Config.cpp
+++ b/src/Config.cpp
@@ -89,6 +89,29 @@ namespace QuickMedia {
val = json_val.asDouble();
}
+ static void matrix_known_homeservers_fallback() {
+ config->matrix.known_homeservers.insert(config->matrix.known_homeservers.end(), {
+ "midov.pl",
+ "matrix.org",
+ "kde.org",
+ "librem.one",
+ "maunium.net",
+ "halogen.city",
+ "gnome.org",
+ "shivering-isles.com",
+ "nerdsin.space",
+ "glowers.club",
+ "privacytools.io",
+ "linuxdelta.com",
+ "tchncs.de",
+ "jupiterbroadcasting.com"
+ });
+ }
+
+ static void config_load_fail_fallback() {
+ matrix_known_homeservers_fallback();
+ }
+
// No-op if this has already been called before
static void init_config() {
if(config_initialized)
@@ -103,12 +126,14 @@ namespace QuickMedia {
Path config_path = get_storage_dir().join("config.json");
if(get_file_type(config_path) != FileType::REGULAR) {
+ config_load_fail_fallback();
return;
}
Json::Value json_root;
if(!read_file_as_json(config_path, json_root) || !json_root.isObject()) {
fprintf(stderr, "Warning: failed to parse config file: %s\n", config_path.data.c_str());
+ config_load_fail_fallback();
return;
}
@@ -170,6 +195,25 @@ namespace QuickMedia {
if(youtube_json.isObject())
get_json_value(youtube_json, "load_progress", config->youtube.load_progress);
+ bool has_known_homeservers_config = false;
+ const Json::Value &matrix_json = json_root["matrix"];
+ if(matrix_json.isObject()) {
+ const Json::Value &known_homeservers_json = matrix_json["known_homeservers"];
+ if(known_homeservers_json.isArray()) {
+ has_known_homeservers_config = true;
+ for(const Json::Value &known_homeserver : known_homeservers_json) {
+ if(!known_homeserver.isString()) {
+ fprintf(stderr, "Warning: matrix.known_homeservers config contains non string value\n");
+ continue;
+ }
+ config->matrix.known_homeservers.push_back(known_homeserver.asString());
+ }
+ }
+ }
+
+ if(!has_known_homeservers_config)
+ matrix_known_homeservers_fallback();
+
get_json_value(json_root, "use_system_fonts", config->use_system_fonts);
get_json_value(json_root, "use_system_mpv_config", config->use_system_mpv_config);
get_json_value(json_root, "enable_shaders", config->enable_shaders);