大人世界的GreasyFork

无需登录(不可用),探索 GreasyFork 和 SleazyFork 的完整世界!

  1. // ==UserScript==
  2. // @name The Login-free GreasyFork
  3. // @name:zh-CN 大人世界的GreasyFork
  4. // @name:zh-TW 大人世界的GreasyFork
  5. // @namespace https://www.imxiaoanag.com/2024/03/27/%E4%B8%80%E4%B8%AAGreasy-Fork%E6%96%B0%E6%8F%92%E4%BB%B6/
  6. // @version 1.0.3
  7. // @icon data:image/png;base64,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
  8. // @description Explore the full world of GreasyFork and SleazyFork without logging in!
  9. // @description:zh-CN 无需登录(不可用),探索 GreasyFork 和 SleazyFork 的完整世界!
  10. // @description:zh-TW 免登錄,探索 GreasyFork 和 SleazyFork 的完整世界!
  11. // @author imxiaoanag
  12. // @match http*://gf.qytechs.cn/*
  13. // @match http*://www.gf.qytechs.cn/*
  14. // @match http*://sleazyfork.org/*
  15. // @match http*://www.sleazyfork.org/*
  16. // @grant GM_xmlhttpRequest
  17. // @grant GM_setValue
  18. // @grant GM_getValue
  19. // @grant GM_registerMenuCommand
  20. // @grant GM_notification
  21. // @grant GM.xmlHttpRequest
  22. // @grant GM.setValue
  23. // @grant GM.getValue
  24. // @grant GM.registerMenuCommand
  25. // @grant GM.notification
  26. // @connect gf.qytechs.cn
  27. // @connect sleazyfork.org
  28. // @license MIT
  29. // ==/UserScript==
  30.  
  31. (function() {
  32. 'use strict';
  33. var _GM_xmlhttpRequest,_GM_registerMenuCommand,_GM_notification;
  34. if(typeof GM_xmlhttpRequest!='undefined'){
  35. _GM_xmlhttpRequest=GM_xmlhttpRequest;
  36. }else if(typeof GM!='undefined' && typeof GM.xmlHttpRequest!='undefined'){
  37. _GM_xmlhttpRequest=GM.xmlHttpRequest;
  38. }
  39. if(typeof GM_registerMenuCommand!='undefined'){
  40. _GM_registerMenuCommand=GM_registerMenuCommand;
  41. }else if(typeof GM!='undefined' && typeof GM.registerMenuCommand!='undefined'){
  42. _GM_registerMenuCommand=GM.registerMenuCommand;
  43. }
  44. if(typeof GM_notification!='undefined'){
  45. _GM_notification=GM_notification;
  46. }else if(typeof GM!='undefined' && typeof GM.notification!='undefined'){
  47. _GM_notification=GM.notification;
  48. }
  49.  
  50. if(typeof _GM_xmlhttpRequest=='undefined')_GM_xmlhttpRequest=(f)=>{};
  51. if(typeof _GM_registerMenuCommand=='undefined')_GM_registerMenuCommand=(s,f)=>{};
  52. if(typeof _GM_notification=='undefined')_GM_notification=(s)=>{};
  53. var storage={
  54. supportGM: typeof GM_getValue=='function' && typeof GM_getValue('a','b')!='undefined',
  55. supportGMPromise: typeof GM!='undefined' && typeof GM.getValue=='function' && typeof GM.getValue('a','b')!='undefined',
  56. mxAppStorage:(function(){
  57. try{
  58. return window.external.mxGetRuntime().storage;
  59. }catch(e){
  60. };
  61. })(),
  62. operaUJSStorage:(function(){
  63. try{
  64. return window.opera.scriptStorage;
  65. }catch(e){
  66. };
  67. })(),
  68. setItem:function(key,value){
  69. if(this.operaUJSStorage){
  70. this.operaUJSStorage.setItem(key,value);
  71. }else if(this.mxAppStorage){
  72. this.mxAppStorage.setConfig(key,value);
  73. }else if(this.supportGM){
  74. GM_setValue(key,value);
  75. }else if(this.supportGMPromise){
  76. GM.setValue(key,value);
  77. }else if(window.localStorage){
  78. window.localStorage.setItem(key,value);
  79. };
  80. },
  81. getItem:function(key,cb){
  82. var value;
  83. if(this.operaUJSStorage){
  84. value=this.operaUJSStorage.getItem(key);
  85. }else if(this.mxAppStorage){
  86. value=this.mxAppStorage.getConfig(key);
  87. }else if(this.supportGM){
  88. value=GM_getValue(key);
  89. }else if(this.supportGMPromise){
  90. value=GM.getValue(key).then(v=>{cb(v)});
  91. return;
  92. }else if(window.localStorage){
  93. value=window.localStorage.getItem(key);
  94. };
  95. cb(value);
  96. },
  97. };
  98. if(document.querySelector('span.sign-in-link')){
  99. var otherSite=/greasyfork\.org/.test(location.hostname)?"sleazyfork":"greasyfork";
  100. if(/scripts\/\d+/.test(location.href)){
  101. if(!document.querySelector("#script-info") && (otherSite == "greasyfork" || document.querySelector("div.width-constraint>section>p>a").href.indexOf("sign_in")!=-1)){
  102. location.href=location.href.replace(/\/\/([^\.]+\.)?(greasyfork|sleazyfork)\.org/,"//$1"+otherSite+"\.org");
  103. }
  104. }else if(/\/(scripts|users)(\/|.*(\?|&)q=|.*[\?&]set=)/.test(location.href)){
  105. _GM_xmlhttpRequest({
  106. method: 'GET',
  107. url: location.href.replace(/\/\/([^\.]+\.)?(greasyfork|sleazyfork)\.org/,"//$1"+otherSite+"\.org"),
  108. onload: function(result) {
  109. var doc = null;
  110. try {
  111. doc = document.implementation.createHTMLDocument('');
  112. doc.documentElement.innerHTML = result.responseText;
  113. }
  114. catch (e) {
  115. console.log('parse error');
  116. }
  117. if (!doc) {
  118. return;
  119. }
  120. var l = doc.querySelector('ol.script-list');
  121. if (l) {
  122. var ml = document.querySelector('ol.script-list');
  123. if(!ml){
  124. ml=document.createElement("ol");
  125. ml.setAttribute("class","script-list");
  126. var list=document.querySelector('.sidebarred-main-content');
  127. var ps=list.querySelectorAll("p");
  128. for(let i=0;i<ps.length;i++){
  129. let p=ps[i];
  130. list.removeChild(p);
  131. }
  132. list.appendChild(ml);
  133. }
  134. var scs=l.querySelectorAll("li");
  135. if(scs){
  136. for(let i=0;i<scs.length;i++){
  137. let sc=scs[i];
  138. if(!ml.querySelector("li[data-script-id='"+sc.dataset.scriptId+"']")){
  139. //addScore(sc);
  140. ml.appendChild(sc);
  141. }
  142. }
  143. }
  144. }
  145. },
  146. onerror: function(e) {
  147. console.log(e);
  148. }
  149. });
  150. }
  151. }
  152. })();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址