Advertisement
thexiv

Pipes for PVC

Jan 24th, 2019
238
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <script>
  2. // Pipes for PVC & Pirodock
  3. // on github/swatchphp
  4. window.addEventListener("click", function(ev) {
  5.     var method_thru = "";
  6.     var mode_thru = "";
  7.     var cache_thru = "";
  8.     var cred_thru = "";
  9.     var content_thru = "";
  10.     var redirect_thru = "";
  11.     var refer_thru = "";
  12.     var pipe_to = "";
  13.     var return_method = "";
  14.     var elem = document.getElementById(ev.target.id);
  15.     if (elem.getAttribute("thru-pipe") == undefined) {
  16.         if (elem.getAttribute("to-pipe") !== undefined)
  17.             window.location.replace(elem.getAttribute("to-pipe"));
  18.         return;
  19.     }
  20.     if (elem.getAttribute("href") !== undefined)
  21.         window.location.replace(elem.getAttribute("href"));
  22.     var return_method = "";
  23.     var elem_values = document.getElementsByClassName("data-pipe");
  24.     var elem_qstring = "";
  25.     for (var i = 0 ; i < elem_values.length ; i++)
  26.         elem_qstring = elem_qstring + elem_values[i].name + "=" + elem_values[i].value + "&";
  27.    
  28.     if (elem_qstring[elem_qstring] === "&" || elem_qstring[elem_qstring] === "?")
  29.         elem_qstring = elem_qstring.substring(0, elem_qstring.length() - 1);
  30.  
  31.     (elem.getAttribute("method") == undefined) ? method_thru = "GET" : method_thru = elem.getAttribute("method");
  32.     (elem.getAttribute("mode") == undefined) ? mode_thru = "cors" : mode_thru = elem.getAttribute("mode");
  33.     (elem.getAttribute("cache") == undefined) ? cache_thru = "no-cache" : cache_thru = elem.getAttribute("cache");
  34.     (elem.getAttribute("cred") == undefined) ? cred_thru = "cred" : cred_thru = elem.getAttribute("cred");
  35.     (elem.getAttribute("headers") == undefined) ? content_thru = "text/html" : content_thru = elem.getAttribute("content");
  36.     (elem.getAttribute("redirect") == undefined) ? redirect_thru = "follow" : content_thru = elem.getAttribute("redirect");
  37.     (elem.getAttribute("referrer") == undefined) ? refer_thru = "client" : content_thru = elem.getAttribute("referrer");
  38.  
  39.     var opts_req = new Request(elem.getAttribute("thru-pipe"));
  40.     var opts = {
  41.         method: method_thru, // *GET, POST, PUT, DELETE, etc.
  42.         mode: mode_thru, // no-cors, cors, *same-origin
  43.         cache: cache_thru, // *default, no-cache, reload, force-cache, only-if-cached
  44.         credentials: cred_thru, // include, same-origin, *omit
  45.         headers: content_thru,
  46.         redirect: redirect_thru, // manual, *follow, error
  47.         referrer: refer_thru, // no-referrer, *client
  48.     };
  49.     if (content_thru == "application/json") {
  50.         opts.set('body', JSON.stringify(elem_qstring));
  51.     }
  52.     else {
  53.         opts.set('body', elem_qstring); // body data type must match "Content-Type" header
  54.     }
  55.     const abort_ctrl = new AbortController();
  56.     const signal = abort_ctrl.signal;
  57.  
  58.     fetch(opts_req, {signal});
  59.     setTimeout(() => abort_ctrl.abort(), 10 * 1000);
  60.     fetch(opts_req, opts);
  61.     opts.clear();
  62.     if (elem.getAttribute("to-pipe") !== undefined)
  63.         window.location.replace(elem.getAttribute("to-pipe"));
  64. });
  65. </script>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement