From 215ac920166087ffcf917c293caf6497adf50c3d Mon Sep 17 00:00:00 2001 From: dec05eba Date: Thu, 8 Sep 2022 20:08:42 +0200 Subject: Add matrix known servers to config file instead of hardcoded, copy example config and readme to /usr/share/quickmedia --- src/Config.cpp | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) (limited to 'src/Config.cpp') 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); -- cgit v1.2.3