Greasy Fork is available in English.
Set off google safesearch
- // ==UserScript==
- // @name Google disable safesearch
- // @namespace http://tampermonkey.net/
- // @version 0.1.3
- // @description Set off google safesearch
- // @author You
- // @include /^https\:\/\/[a-z]*\.(google)\.[a-z]*/search\?/
- // @icon https://www.google.com/s2/favicons?domain=google.com
- // @grant none
- // @run-at document-start
- // ==/UserScript==
- (function() {
- 'use strict';
- var count = 0;
- window.addEventListener("load",function(){
- run();
- });
- function disableSafesearch() {
- var safeui = document.querySelector("g-menu-item a[aria-label][href*='setprefs?sig']");
- // new ui about may 2024
- var newsafeuiImage = document.querySelector("[data-sbu^='/setprefs']");
- var newsafeuiSearch = document.querySelector("div:has(>[href^='/safesearch']) div");
- if(safeui != null){
- if(safeui.href.match(/safeui=off$/) == null){
- window.location = safeui.href.replace(/safeui=(on|images)$/,"safeui=off");
- console.log("Google disable safesearch: done!");
- } else {
- console.log("Google disable safesearch: nothing to do!");
- }
- } else if (newsafeuiImage != null){
- if(newsafeuiImage.querySelector("[data-key='off'][selected='true']") == null) {
- if(newsafeuiImage.querySelector("[data-key='off']") != null){
- //window.location = document.querySelector("[data-sbu^='/setprefs']").getAttribute("data-sbu") + "&safeui=off"
- // document.querySelector("div:has(>[href^='/safesearch']) div").querySelector("span:last-child").innerText != "Off"
- newsafeuiImage.querySelector("[data-key='off']").click();
- console.log("Google disable safesearch: done!");
- }
- } else {
- console.log("Google disable safesearch: nothing to do!");
- }
- } else if (newsafeuiSearch != null) { // data-setprefs-off-url
- if (document.querySelector("div:has(>[href^='/safesearch']) div").querySelector("span:last-child").innerText != "Off") {
- var xhr = new XMLHttpRequest();
- xhr.open("GET", "https://www.google.com/safesearch");
- xhr.send();
- xhr.responseType = "text"
- //xhr.responseType = "document";
- //xhr.overrideMimeType = "text/xml";
- xhr.onload = () => {
- if (xhr.readyState == 4 && xhr.status == 200) {
- xhr.open("GET", xhr.responseText.match("data-setprefs-off-url=\"([^\"]*)\"")[1].replaceAll("amp;",""));
- xhr.send();
- xhr.responseType = "html";
- xhr.onload = () => {
- if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 204)) {
- window.location = window.location;
- console.log("Google disable safesearch: done!");
- } else {
- console.log(`Google disable safesearch: Failed error ${xhr.status}`);
- }
- };
- } else {
- console.log(`Google disable safesearch: Failed error ${xhr.status}`);
- }
- };
- } else {
- console.log("Google disable safesearch: nothing to do!");
- }
- } else {
- safeui = document.querySelector("g-menu-item a[href*='setprefs?sig'][href$='safeui=off']");
- if(safeui != null) {
- window.location = safeui.href;
- console.log("Google disable safesearch: done!");
- } else {
- if(document.querySelector("g-menu-item a[href*='setprefs?sig'][href$='safeui=on']") != null){
- console.log("Google disable safesearch: nothing to do!");
- } else {
- console.log(document.querySelector("g-menu-item a[href*='setprefs?sig']"));
- console.log("Google disable safesearch: failed!");
- }
- }
- }
- }
- function run(){
- //only few pages have safesearch settings menu
- if(document.URL.includes("tbm") == false || document.URL.match(/tbm=(isch|vid|nws)/) != null){
- if(document.querySelector("g-menu-item a[href*='setprefs?sig']") == null &&
- // new ui may 2024
- document.querySelector("[data-sbu^='/setprefs']") == null && document.querySelector("div:has(>[href^='/safesearch']) div") == null){
- //wait until safesearch settings menu exist
- window.setTimeout(function (){
- run();
- },50);
- count += 1;
- if(count > 10){
- console.log("Google disable safesearch: too fast!");
- count = 0;
- }
- } else {
- disableSafesearch();
- }
- } else {
- console.log("Google disable safesearch: no safesearch page!");
- }
- }
- })();