From d0dda48e791e6f08f6be3936623a2c305caacb3c Mon Sep 17 00:00:00 2001
From: dec05eba <dec05eba@protonmail.com>
Date: Thu, 8 Sep 2022 20:31:30 +0200
Subject: Peertube: load known instances from config file

---
 src/plugins/Peertube.cpp | 31 ++++++++++++++-----------------
 1 file changed, 14 insertions(+), 17 deletions(-)

(limited to 'src/plugins')

diff --git a/src/plugins/Peertube.cpp b/src/plugins/Peertube.cpp
index 4fb2ac4..6d55e16 100644
--- a/src/plugins/Peertube.cpp
+++ b/src/plugins/Peertube.cpp
@@ -3,6 +3,7 @@
 #include "../../include/Notification.hpp"
 #include "../../include/Utils.hpp"
 #include "../../include/StringUtils.hpp"
+#include "../../include/Config.hpp"
 #include <json/value.h>
 
 namespace QuickMedia {
@@ -27,23 +28,19 @@ namespace QuickMedia {
     }
 
     PluginResult PeertubeInstanceSelectionPage::lazy_fetch(BodyItems &result_items) {
-        result_items.push_back(create_instance_selection_item("tube.midov.pl", "https://tube.midov.pl"));
-        result_items.push_back(create_instance_selection_item("videos.lukesmith.xyz", "https://videos.lukesmith.xyz"));
-        result_items.push_back(create_instance_selection_item("peertube.se", "https://peertube.se"));
-        result_items.push_back(create_instance_selection_item("bittube.video", "https://bittube.video"));
-        result_items.push_back(create_instance_selection_item("video.nobodyhasthe.biz", "https://video.nobodyhasthe.biz"));
-        result_items.push_back(create_instance_selection_item("libre.tube", "https://libre.tube"));
-        result_items.push_back(create_instance_selection_item("open.tube", "https://open.tube"));
-        result_items.push_back(create_instance_selection_item("runtube.re", "https://runtube.re"));
-        result_items.push_back(create_instance_selection_item("tube.kenfm.de", "https://tube.kenfm.de"));
-        result_items.push_back(create_instance_selection_item("tcode.kenfm.de", "https://tcode.kenfm.de"));
-        result_items.push_back(create_instance_selection_item("tube.querdenken-711.de", "https://tube.querdenken-711.de"));
-        result_items.push_back(create_instance_selection_item("peertube.rage.lol", "https://peertube.rage.lol"));
-        result_items.push_back(create_instance_selection_item("gegenstimme.tv", "https://gegenstimme.tv"));
-        result_items.push_back(create_instance_selection_item("tv.poa.st", "https://tv.poa.st"));
-        result_items.push_back(create_instance_selection_item("libre.video", "https://libre.video"));
-        result_items.push_back(create_instance_selection_item("gorf.tube", "https://gorf.tube"));
-        result_items.push_back(create_instance_selection_item("neogenesis.tv", "https://neogenesis.tv"));
+        for(const std::string &known_instance : get_config().peertube.known_instances) {
+            std::string homeserver_name = known_instance;
+            if(!homeserver_name.empty() && homeserver_name.back() == '/')
+                homeserver_name.pop_back();
+
+            if(string_starts_with(homeserver_name, "http://"))
+                homeserver_name.erase(homeserver_name.begin(), homeserver_name.begin() + 7);
+
+            if(string_starts_with(homeserver_name, "https://"))
+                homeserver_name.erase(homeserver_name.begin(), homeserver_name.begin() + 8);
+
+            result_items.push_back(create_instance_selection_item(homeserver_name, known_instance));
+        }
         return PluginResult::OK;
     }
 
-- 
cgit v1.2.3-70-g09d2