Bypass FileCrypt

Bypass FileCrypt and get the original link! Try this version first. If Bypass FileCrypt shows a "2" in the page and doesn't redirect to the final page, then remove this script and try Bypass FileCrypt (XHR) instead.

اعتبارا من 13-01-2021. شاهد أحدث إصدار.

// ==UserScript==
// @name         Bypass FileCrypt
// @namespace    StephenP
// @version      1.3.1
// @description  Bypass FileCrypt and get the original link! Try this version first. If Bypass FileCrypt shows a "2" in the page and doesn't redirect to the final page, then remove this script and try Bypass FileCrypt (XHR) instead.
// @author       StephenP
// @grant        GM.xmlHttpRequest
// @match        http://filecrypt.cc/*
// @match        http://www.filecrypt.cc/*
// @match        http://filecrypt.co/*
// @match        http://www.filecrypt.co/*
// @match        https://filecrypt.cc/*
// @match        https://www.filecrypt.cc/*
// @match        https://filecrypt.co/*
// @match        https://www.filecrypt.co/*
// @run-at       document-end
// @connect      dcrypt.it
// @connect      self
// ==/UserScript==
(function () {
  if(document.location.href.includes("/Link/")){
    getSingleLink();
  }
  if((document.body.innerHTML=="2")&&(document.location.href.includes("/index.php?Action=Go"))){
    document.body.innerHTML+='<br>Your browser seems to have problems with the Bypass Filecrypt script. You can try <a href="https://greatest.deepsurf.us/en/scripts/417157-bypass-filecrypt-xhr">Bypass Filecrypt (XHR)</a> instead: it relies on XmlHttpRequest for retrieving the original link instead of extracting it from the page while is being loaded. Remember to disable Bypass Filecrypt before using Bypass Filecrypt (XHR), as they are not compatible together.';
  }
  else if(document.location.href.includes("/Container/")){
    getCNL();
  }
})();
function getSingleLink(){
  if(document.body.getElementsByTagName("SCRIPT").length==0){
    window.stop();
    const a=document.body.innerHTML.lastIndexOf("http");
    top.location.href=document.body.innerHTML.substring(a,document.body.innerHTML.indexOf('id=',a)+43).replace('&amp;', '&');
  }
}
function getCNL(){
  var dlcButton=document.getElementsByClassName("dlcdownload");
  if(dlcButton.length>0){
    var link=dlcButton[0].onclick.toString();
    var dlcId=link.substring(link.indexOf('\'')+1,link.indexOf('\'',link.indexOf('\'')+1));
    GM.xmlHttpRequest({
      method: "GET",
      url: "http://"+document.location.hostname+"/DLC/"+dlcId+".dlc",
      onload: function(response) {
				dcrypt(response.responseText);
      },
      onerror: function(response) {
      }
    });    
  }
}
function dcrypt(content){
  GM.xmlHttpRequest({
    method: "POST",
    url: "http://dcrypt.it/decrypt/paste",
    headers: {
      "Content-Type": "application/x-www-form-urlencoded"
    },
    data: "content="+encodeURIComponent(content),
    onload: function(response) {
      var obj=JSON.parse(response.response);
      var finalLinksDiv=document.createElement("DIV");
      finalLinksDiv.style.backgroundColor="white";
      finalLinksDiv.style.borderRadius="10px";
      finalLinksDiv.style.padding="1em";
      finalLinksDiv.style.marginTop="1em";
      finalLinksDiv.style.color="black";
      finalLinksDiv.innerHTML+="Direct links:<br><br>";
      for (var link of obj.success.links) {
        finalLinksDiv.innerHTML+=link+"<br>";
      }
      document.getElementsByClassName("butt0ns")[0].appendChild(finalLinksDiv);
    },
    onerror: function(response) {
    }
  });
}