From a8645b7eb616480fc5fcfc8d454caa7fd648895d Mon Sep 17 00:00:00 2001 From: hnhx Date: Fri, 17 Feb 2023 09:44:03 +0100 Subject: [PATCH] split the google language to site and results, now everything related to instances are defined in the config file --- config.php.example | 111 +++++++++++++++++++++++++++++++++------- engines/google/text.php | 16 ++++-- misc/tools.php | 36 +++++-------- settings.php | 65 ++++++++++------------- 4 files changed, 147 insertions(+), 81 deletions(-) diff --git a/config.php.example b/config.php.example index 531749e..481a276 100644 --- a/config.php.example +++ b/config.php.example @@ -5,7 +5,8 @@ "google_domain" => "com", // Google results will be in this language - "google_language" => "en", + "google_language_site" => "", + "google_language_results" => "", // You can use any Invidious instance here "invidious_instance_for_video_results" => "https://invidious.namazso.eu", @@ -16,23 +17,98 @@ "disable_hidden_service_search" => false, /* - Preset privacy friendly frontends for users, these can be overwritten by users in settings - e.g.: "invidious" => "https://yewtu.be", + Preset privacy friendly frontends for users, these can be overwritten by users in the settings + e.g.: Preset the invidious instance URL: "instance_url" => "https://yewtu.be", */ - "invidious" => "", // youtube - "bibliogram" => "", // instagram - "rimgo" => "", // imgur - "scribe" => "", // medium - "librarian" => "", // odysee - "gothub" => "", // github - "nitter" => "", // twitter - "libreddit" => "", // reddit - "proxitok" => "", // tiktok - "wikiless" => "", // wikipedia - "quetre" => "", // quora - "libremdb" => "", // imdb, - "breezewiki" => "", // fandom, - "anonymousoverflow" => "", // stackoverflow + + "frontends" => array( + "invidious" => array( + "instance_url" => "", + "project_url" => "https://docs.invidious.io/instances/", + "original_name" => "YouTube", + "original_url" => "youtube.com" + ), + "bibliogram" => array( + "instance_url" => "", + "project_url" => "https://git.sr.ht/~cadence/bibliogram-docs/tree/master/docs/Instances.md", + "original_name" => "Instagram", + "original_url" => "instagram.com" + ), + "rimgo" => array( + "instance_url" => "", + "project_url" => "https://codeberg.org/video-prize-ranch/rimgo#instances", + "original_name" => "Imgur", + "original_url" => "imgur.com" + ), + "scribe" => array( + "instance_url" => "", + "project_url" => "https://git.sr.ht/~edwardloveall/scribe/tree/main/docs/instances.md", + "original_name" => "Medium", + "original_url" => "medium.com" + ), + "gothub" => array( + "instance_url" => "", + "project_url" => "https://codeberg.org/gothub/gothub/wiki/Instances", + "original_name" => "GitHub", + "original_url" => "github.com" + ), + "librarian" => array( + "instance_url" => "", + "project_url" => "https://codeberg.org/librarian/librarian#clearnet", + "original_name" => "Odysee", + "original_url" => "odysee.com" + ), + + "nitter" => array( + "instance_url" => "", + "project_url" => "https://github.com/zedeus/nitter/wiki/Instances", + "original_name" => "Twitter", + "original_url" => "twitter.com" + ), + + "libreddit" => array( + "instance_url" => "", + "project_url" => "https://github.com/spikecodes/libreddit", + "original_name" => "Reddit", + "original_url" => "reddit.com" + ), + "proxitok" => array( + "instance_url" => "", + "project_url" => "https://github.com/pablouser1/ProxiTok/wiki/Public-instances", + "original_name" => "TikTok", + "original_url" => "tiktok.com" + ), + "wikiless" => array( + "instance_url" => "", + "project_url" => "https://github.com/Metastem/wikiless#instances", + "original_name" => "Wikipedia", + "original_url" => "wikipedia.com" + ), + "quetre" => array( + "instance_url" => "", + "project_url" => "https://github.com/zyachel/quetre", + "original_name" => "Quora", + "original_url" => "quora.com" + ), + "libremdb" => array( + "instance_url" => "", + "project_url" => "https://github.com/zyachel/libremdb", + "original_name" => "IMDb", + "original_url" => "imdb.com" + ), + "breezewiki" => array( + "instance_url" => "", + "project_url" => "https://gitdab.com/cadence/breezewiki", + "original_name" => "Fandom", + "original_url" => "fandom.com" + ), + "anonymousoverflow" => array( + "instance_url" => "", + "project_url" => "https://github.com/httpjamesm/AnonymousOverflow#clearnet-instances", + "original_name" => "StackOverflow", + "original_url" => "stackoverflow.com" + ) + ), /* To send requests trough a proxy uncomment CURLOPT_PROXY and CURLOPT_PROXYTYPE: @@ -61,6 +137,5 @@ CURLOPT_TIMEOUT => 18, CURLOPT_VERBOSE => false ) - ); ?> diff --git a/engines/google/text.php b/engines/google/text.php index 1ed9afb..78eb6cf 100644 --- a/engines/google/text.php +++ b/engines/google/text.php @@ -8,13 +8,19 @@ $results = array(); $domain = $config->google_domain; - $language = isset($_COOKIE["google_language"]) ? htmlspecialchars($_COOKIE["google_language"]) : $config->google_language; - + $site_language = isset($_COOKIE["google_language_site"]) ? trim(htmlspecialchars($_COOKIE["google_language_site"])) : $config->google_language_site; + $results_language = isset($_COOKIE["google_language_results"]) ? trim(htmlspecialchars($_COOKIE["google_language_results"])) : $config->google_language_results; + $url = "https://www.google.$domain/search?q=$query_encoded&start=$page"; - if (3 > strlen($language)) + if (3 > strlen($site_language) && 0 < strlen($site_language)) { - $url .= "&hl=$language&lr=lang_$language"; + $url .= "&hl=$site_language"; + } + + if (3 > strlen($results_language) && 0 < strlen($results_language)) + { + $url .= "&lr=lang_$results_language"; } if (isset($_COOKIE["safe_search"])) @@ -22,6 +28,8 @@ $url .= "&safe=medium"; } + echo $url; + $google_ch = curl_init($url); curl_setopt_array($google_ch, $config->curl_settings); curl_multi_add_handle($mh, $google_ch); diff --git a/misc/tools.php b/misc/tools.php index 950b793..f6d9268 100644 --- a/misc/tools.php +++ b/misc/tools.php @@ -1,4 +1,6 @@ frontends; - if (isset($_COOKIE[$frontend]) || !empty($config->$frontend)) + if (isset($_COOKIE[$frontend]) || !empty($frontends[$frontend]["instance_url"])) { + if (isset($_COOKIE[$frontend])) $frontend = $_COOKIE[$frontend]; - else if (!empty($config->$frontend)) - $frontend = $config->$frontend; + else if (!empty($frontends[$frontend]["instance_url"])) + $frontend = $frontends[$frontend]["instance_url"]; if ($original == "instagram.com") { @@ -69,28 +73,16 @@ function check_for_privacy_frontend($url) { + + global $config; + if (isset($_COOKIE["disable_frontends"])) return $url; - $frontends = array( - "youtube.com" => "invidious", - "instagram.com" => "bibliogram", - "imgur.com" => "rimgo", - "medium.com" => "scribe", - "github.com" => "gothub", - "odysee.com" => "librarian", - "twitter.com" => "nitter", - "reddit.com" => "libreddit", - "tiktok.com" => "proxitok", - "wikipedia.org" => "wikiless", - "quora.com" => "quetre", - "imdb.com" => "libremdb", - "fandom.com" => "breezewiki", - "stackoverflow.com" => "anonymousoverflow" - ); - - foreach($frontends as $original => $frontend) + foreach($config->frontends as $frontend => $data) { + $original = $data["original_url"]; + if (strpos($url, $original)) { $url = try_replace_with_frontend($url, $frontend, $original); diff --git a/settings.php b/settings.php index 52fdd9f..3e9e36f 100644 --- a/settings.php +++ b/settings.php @@ -1,29 +1,31 @@ $value){ + foreach($_POST as $key=>$value) + { if (!empty($value)) { setcookie($key, $value, time() + (86400 * 90), '/'); - $_COOKIE[$key] = $value; + } + else + { + setcookie($key, "", time() - 1000); } } } @@ -79,30 +81,12 @@

For an example if you want to view YouTube without getting spied on, click on "Invidious", find the instance that is most suitable for you then paste it in (correct format: https://example.com)

array("https://docs.invidious.io/instances/", "YouTube"), - "bibliogram" => array("https://git.sr.ht/~cadence/bibliogram-docs/tree/master/docs/Instances.md", "Instagram"), - "rimgo" => array("https://codeberg.org/video-prize-ranch/rimgo#instances", "Imgur"), - "scribe" => array("https://git.sr.ht/~edwardloveall/scribe/tree/main/docs/instances.md", "Medium"), - "gothub" => array("https://codeberg.org/gothub/gothub/wiki/Instances", "GitHub"), - "librarian" => array("https://codeberg.org/librarian/librarian#clearnet", "Odysee"), - "nitter" => array("https://github.com/zedeus/nitter/wiki/Instances", "Twitter"), - "libreddit" => array("https://github.com/spikecodes/libreddit", "Reddit"), - "proxitok" => array("https://github.com/pablouser1/ProxiTok/wiki/Public-instances", "TikTok"), - "wikiless" => array("https://github.com/Metastem/wikiless#instances", "Wikipedia"), - "quetre" => array("https://github.com/zyachel/quetre", "Quora"), - "libremdb" => array("https://github.com/zyachel/libremdb", "IMDb"), - "breezewiki" => array("https://gitdab.com/cadence/breezewiki", "Fandom"), - "anonymousoverflow" => array("https://github.com/httpjamesm/AnonymousOverflow#clearnet-instances", "StackOverflow") - ); - - foreach($frontends as $frontend => $info) + foreach($config->frontends as $frontend => $data) { echo "
"; - echo "" . ucfirst($frontend) . ""; - echo "" . ucfirst($frontend) . ""; + echo ""; echo "
"; } @@ -115,10 +99,17 @@

Google settings

- Google language + Site language google_language; + echo "google_language_site; + ?>"> +
+
+ Results language + google_language_results; ?>">