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.

目前为 2021-03-30 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name Bypass FileCrypt
  3. // @namespace StephenP
  4. // @version 1.3.3
  5. // @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.
  6. // @author StephenP
  7. // @grant GM.xmlHttpRequest
  8. // @match http://filecrypt.cc/*
  9. // @match http://www.filecrypt.cc/*
  10. // @match http://filecrypt.co/*
  11. // @match http://www.filecrypt.co/*
  12. // @match https://filecrypt.cc/*
  13. // @match https://www.filecrypt.cc/*
  14. // @match https://filecrypt.co/*
  15. // @match https://www.filecrypt.co/*
  16. // @run-at document-end
  17. // @connect dcrypt.it
  18. // @connect self
  19. // ==/UserScript==
  20. (function () {
  21. var usenetAd=document.getElementsByTagName('A');//come on, why should anyone pay for access to pirated content?
  22. for(var i=0;i<usenetAd.length;i++){
  23. if(usenetAd[i].href.includes('/pink/')){
  24. usenetAd[i].parentNode.remove();
  25. i=usenetAd.length;
  26. }
  27. }
  28. if(document.location.href.includes("/Link/")){
  29. getSingleLink();
  30. }
  31. else if(document.location.href.includes("/Container/")){
  32. let art=document.getElementsByClassName("download")[0].parentNode.parentNode.parentNode.parentNode;
  33. let load=document.createElement("DIV");
  34. load.id="dcryptLoadMsg";
  35. load.style.marginBottom="2em";
  36. load.innerHTML="Loading decrypted links list from dcrypt.it ...";
  37. art.parentNode.insertBefore(load,art);
  38. getCNL();
  39. }
  40. })();
  41. function getSingleLink(){
  42. if(document.body.getElementsByTagName("SCRIPT").length==0){
  43. window.stop();
  44. if(body.children.length>0){
  45. const a=document.body.innerHTML.lastIndexOf("http");
  46. top.location.href=document.body.innerHTML.substring(a,document.body.innerHTML.indexOf('id=',a)+43).replace('&amp;', '&');
  47. }
  48. else{
  49. GM.xmlHttpRequest({
  50. method: "GET",
  51. url: document.location.href,
  52. onload: function(response) {
  53. const a=response.responseText.lastIndexOf("http");
  54. top.location.href=response.responseText.substring(a,response.responseText.indexOf('id=',a)+43);
  55. }
  56. });
  57. }
  58. }
  59. }
  60. function getCNL(){
  61. var dlcButton=document.getElementsByClassName("dlcdownload");
  62. if(dlcButton.length>0){
  63. var inputs=document.getElementsByTagName('INPUT');
  64. var dlcId;
  65. for(var i=0;i<inputs.length;i++){
  66. if(inputs[i].getAttribute('name')=='hidden_cnl_id'){
  67. dlcId=inputs[i].getAttribute('value');
  68. i=inputs.length;
  69. }
  70. }
  71. console.log('dlcId='+dlcId);
  72. GM.xmlHttpRequest({
  73. method: "GET",
  74. url: "https://"+document.location.hostname+"/DLC/"+dlcId+".dlc",
  75. onload: function(response) {
  76. dcrypt(response.responseText);
  77. },
  78. onerror: function(response) {
  79. }
  80. });
  81. }
  82. }
  83. function dcrypt(content){
  84. GM.xmlHttpRequest({
  85. method: "POST",
  86. url: "http://dcrypt.it/decrypt/paste",
  87. headers: {
  88. "Content-Type": "application/x-www-form-urlencoded"
  89. },
  90. data: "content="+encodeURIComponent(content),
  91. onload: function(response) {
  92. var obj=JSON.parse(response.response);
  93. var finalLinksDiv=document.createElement("DIV");
  94. finalLinksDiv.style.backgroundColor="white";
  95. finalLinksDiv.style.borderRadius="10px";
  96. finalLinksDiv.style.padding="1em";
  97. finalLinksDiv.style.marginTop="1em";
  98. finalLinksDiv.style.color="black";
  99. finalLinksDiv.innerHTML+="Direct links:<br><br>";
  100. for (var link of obj.success.links) {
  101. finalLinksDiv.innerHTML+=link+"<br>";
  102. }
  103. document.getElementById("dcryptLoadMsg").replaceWith(finalLinksDiv);
  104. },
  105. onerror: function(response) {
  106. }
  107. });
  108. }