RARBG - Search on every page

Adds the search to the top-left corner on every page on RARBG

您需要先安裝使用者腳本管理器擴展,如 TampermonkeyGreasemonkeyViolentmonkey 之後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyUserscripts 後才能安裝該腳本。

你需要先安裝一款使用者腳本管理器擴展,比如 Tampermonkey,才能安裝此腳本

您需要先安裝使用者腳本管理器擴充功能後才能安裝該腳本。

(我已經安裝了使用者腳本管理器,讓我安裝!)

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

(我已經安裝了使用者樣式管理器,讓我安裝!)

// ==UserScript==
// @name         RARBG - Search on every page
// @namespace    NotNeo
// @version      0.2.0
// @description  Adds the search to the top-left corner on every page on RARBG
// @author       NotNeo
// @icon         https://therarbg.to/static/rarbg/image/rbg.png
// @match        https://*.therarbg.to/*
// @license      unlicense
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    addGlobalStyle(`
		#fixedSearch {
			position: fixed;
			left: 5px;
			top: 5px;
			z-index: 9999;
			background-color: #3860bb;
			border: 1px solid black;
			border-radius: 15px;
			padding: 5px;
		}

		#fixedSearchActivator {
			display: inline-block;
			vertical-align: top;
			cursor: pointer;
			background-color: rgba(255,255,255,.1);
			border-radius: 15px;
			padding: 10px;
		}
		#fixedSearchActivator > .userscript-search-icon {
			width: 25px;
			height: 25px;
		}

		#fixedSearchTorrent {
			border-radius: 15px;
			display: none;
			vertical-align: middle;
			float: right;
			margin-left: 10px;
		}
	`);
    $("body").append("<div id='fixedSearch'><span id='fixedSearchActivator'>" + `<svg class="userscript-search-icon" aria-hidden="true" focusable="false" data-prefix="fas" data-icon="search" class="svg-inline--fa fa-search fa-w-16" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M505 442.7L405.3 343c-4.5-4.5-10.6-7-17-7H372c27.6-35.3 44-79.7 44-128C416 93.1 322.9 0 208 0S0 93.1 0 208s93.1 208 208 208c48.3 0 92.7-16.4 128-44v16.3c0 6.4 2.5 12.5 7 17l99.7 99.7c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.6.1-34zM208 336c-70.7 0-128-57.2-128-128 0-70.7 57.2-128 128-128 70.7 0 128 57.2 128 128 0 70.7-57.2 128-128 128z"></path></svg>` + "</span></div>");

    if($(".searchSec").length) {
        $(".searchSec").clone().appendTo("#fixedSearch");
        DoTheThings();
    }
    else {
        $.get("/", function(data){
            if(data) {
                try {
                    $("#fixedSearch").append($(data).find(".searchSec"));
                    DoTheThings();
                }
                catch(err) {
                    alert("error: something went wrong getting the search from the AJAX get data\n" + err.message);
                }
            }
            else {
                alert("error: something went wrong getting the data returned by the AJAX get");
            }
        }).fail(function(){
            alert("error: could not fetch data with AJAX get");
        });
    }

})();

function DoTheThings() {
    $("#fixedSearch").find(".searchSec").prop("id", "fixedSearchTorrent");
    $("#fixedSearchTorrent").find(".searchTerm").prop("id", "fixedSearchInput");
    //$("#fixedSearchTorrent").find("#SearchDescription").prop("id", "fixedSearchDescription");
    $("#fixedSearchInput").removeAttr("onclick").removeAttr("onfocus").removeAttr("onblur");
    $("#fixedSearchTorrent").find("#filterBtn").prop("id", "fixedShadvbutton");
    $("#fixedShadvbutton").removeAttr("onclick");
    $("#fixedShadvbutton").off();
    $("#fixedSearchTorrent").find(".filtOptn").prop("id", "fixedDivadvsearch");
    $("#fixedDivadvsearch").find(".filterButton[type='reset']").removeAttr("onclick");

    $("#fixedSearch").find("form").off();

    $("#fixedSearch").find(".searchButton[type='submit']").off();
    $("#fixedSearch").find(".searchButton[type='submit']").on('click', CopiedSubmit);

    $("#fixedShadvbutton").click(function(e){
        e.preventDefault();
        e.stopPropagation();
        $("#fixedDivadvsearch").toggle(100);
        return false;
    });

    $("#fixedDivadvsearch > .filterButton[type='reset']").click(function(e){
        e.preventDefault();
        e.stopPropagation();
        $("#fixedSearchTorrent input[type='checkbox']").prop("checked", false);
        return false;
    });

    $("#fixedSearchActivator").click(function(e){
        e.preventDefault();
        e.stopPropagation();
        $("#fixedSearchTorrent").toggle(100);
        $("#fixedSearchInput").focus();
        return false;
    });
    $(document).on('click', function(e) {
        if($(e.target).closest('#fixedSearch').length === 0) {
            $("#fixedSearchTorrent").hide(100);
        }
    });
}

function CopiedSubmit(event) {
    console.log("asdasd");
    event.preventDefault();
    event.stopPropagation();
    let searchValue = encodeURI($("#fixedSearch").find("#fixedSearchInput").val().replace(':', ' '));
    let sizeMinMb = encodeURI($("#fixedSearch").find("#sizeMin").val());
    let sizeMaxMb = encodeURI($("#fixedSearch").find("#sizeMax").val());
    let radMovies = encodeURI($("#fixedSearch").find("#radMovies").is(":checked"));
    let radTV = encodeURI($("#fixedSearch").find("#radTV").is(":checked"));
    let radGames = encodeURI($("#fixedSearch").find("#radGames").is(":checked"));
    let radMusic = encodeURI($("#fixedSearch").find("#radMusic").is(":checked"));
    let radAnime = encodeURI($("#fixedSearch").find("#radAnime").is(":checked"));
    let radApps = encodeURI($("#fixedSearch").find("#radApps").is(":checked"));
    let radOther = encodeURI($("#fixedSearch").find("#radOther").is(":checked"));
    let radXXX = encodeURI($("#fixedSearch").find("#radXXX").is(":checked"));

    if (searchValue) {
        let checked = {
            movies: radMovies,
            tv: radTV,
            games: radGames,
            music: radMusic,
            anime: radAnime,
            apps: radApps,
            other: radOther,
            xxx: radXXX,
            sizeMin: sizeMinMb,
            sizeMax: sizeMaxMb,
        };
        localStorage.setItem("checkedSearches", JSON.stringify(checked));
        let showAdultCon = localStorage.getItem("adultContentToggle") || "true";
        document.location =
            "/get-posts/keywords:" +
            searchValue +
            (radMovies === "true" ? `:category:Movies` : "") +
            (radTV === "true" ? `:category:TV` : "") +
            (radGames === "true" ? `:category:Games` : "") +
            (radMusic === "true" ? `:category:Music` : "") +
            (radAnime === "true" ? `:category:Anime` : "") +
            (radApps === "true" ? `:category:Apps` : "") +
            (radOther === "true" ? `:category:Other` : "") +
            (radXXX === "true" ? `:category:XXX` : "") +
            (showAdultCon === "false" ? `:ncategory:XXX` : "") +
            (Number(sizeMinMb) > 0 ? `:size__gte:${Number(sizeMinMb)*1000000}` : "") +
            (Number(sizeMaxMb) > 0 ? `:size__lte:${Number(sizeMaxMb)*1000000}` : "") +
            "/";
    }
    return false;
}

function addGlobalStyle(css) {
    var head, style;
    head = document.getElementsByTagName('head')[0];
    if (!head) { return; }
    style = document.createElement('style');
    style.type = 'text/css';
    style.innerHTML = css;
    head.appendChild(style);
}