Greasy Fork is available in English.
这是一个能让你在未登录GreasyFork的情况下也可以访问一些需要登陆后才能查看的插件的脚本。
当前为
// ==UserScript==
// @name The Login-free GreasyFork
// @name:zh-CN 大人世界的GreasyFork
// @name:zh-TW 大人世界的GreasyFork
// @namespace https://github.com/matthewlu070111
// @version 1.0
// @description This is a script that allows you to access some plugins in GreasyFork that need to be logged in to view without a login status.
// @description:zh-CN 这是一个能让你在未登录GreasyFork的情况下也可以访问一些需要登陆后才能查看的插件的脚本。
// @description:zh-TW 這是一個能讓你在未登入GreasyFork的情況下也可以存取一些需要登陸後才能查看的插件的腳本。
// @author imxiaoanag
// @match http*://greasyfork.org/*
// @match http*://www.greasyfork.org/*
// @match http*://sleazyfork.org/*
// @match http*://www.sleazyfork.org/*
// @grant GM_xmlhttpRequest
// @grant GM_setValue
// @grant GM_getValue
// @grant GM_registerMenuCommand
// @grant GM_notification
// @grant GM.xmlHttpRequest
// @grant GM.setValue
// @grant GM.getValue
// @grant GM.registerMenuCommand
// @grant GM.notification
// @connect greasyfork.org
// @connect sleazyfork.org
// @license MIT
// ==/UserScript==
(function() {
'use strict';
var _GM_xmlhttpRequest,_GM_registerMenuCommand,_GM_notification;
if(typeof GM_xmlhttpRequest!='undefined'){
_GM_xmlhttpRequest=GM_xmlhttpRequest;
}else if(typeof GM!='undefined' && typeof GM.xmlHttpRequest!='undefined'){
_GM_xmlhttpRequest=GM.xmlHttpRequest;
}
if(typeof GM_registerMenuCommand!='undefined'){
_GM_registerMenuCommand=GM_registerMenuCommand;
}else if(typeof GM!='undefined' && typeof GM.registerMenuCommand!='undefined'){
_GM_registerMenuCommand=GM.registerMenuCommand;
}
if(typeof GM_notification!='undefined'){
_GM_notification=GM_notification;
}else if(typeof GM!='undefined' && typeof GM.notification!='undefined'){
_GM_notification=GM.notification;
}
if(typeof _GM_xmlhttpRequest=='undefined')_GM_xmlhttpRequest=(f)=>{};
if(typeof _GM_registerMenuCommand=='undefined')_GM_registerMenuCommand=(s,f)=>{};
if(typeof _GM_notification=='undefined')_GM_notification=(s)=>{};
var storage={
supportGM: typeof GM_getValue=='function' && typeof GM_getValue('a','b')!='undefined',
supportGMPromise: typeof GM!='undefined' && typeof GM.getValue=='function' && typeof GM.getValue('a','b')!='undefined',
mxAppStorage:(function(){
try{
return window.external.mxGetRuntime().storage;
}catch(e){
};
})(),
operaUJSStorage:(function(){
try{
return window.opera.scriptStorage;
}catch(e){
};
})(),
setItem:function(key,value){
if(this.operaUJSStorage){
this.operaUJSStorage.setItem(key,value);
}else if(this.mxAppStorage){
this.mxAppStorage.setConfig(key,value);
}else if(this.supportGM){
GM_setValue(key,value);
}else if(this.supportGMPromise){
GM.setValue(key,value);
}else if(window.localStorage){
window.localStorage.setItem(key,value);
};
},
getItem:function(key,cb){
var value;
if(this.operaUJSStorage){
value=this.operaUJSStorage.getItem(key);
}else if(this.mxAppStorage){
value=this.mxAppStorage.getConfig(key);
}else if(this.supportGM){
value=GM_getValue(key);
}else if(this.supportGMPromise){
value=GM.getValue(key).then(v=>{cb(v)});
return;
}else if(window.localStorage){
value=window.localStorage.getItem(key);
};
cb(value);
},
};
if(document.querySelector('span.sign-in-link')){
var otherSite=/greasyfork\.org/.test(location.hostname)?"sleazyfork":"greasyfork";
if(/scripts\/\d+/.test(location.href)){
if(!document.querySelector("#script-info") && (otherSite == "greasyfork" || document.querySelector("div.width-constraint>section>p>a").href.indexOf("sign_in")!=-1)){
location.href=location.href.replace(/\/\/([^\.]+\.)?(greasyfork|sleazyfork)\.org/,"//$1"+otherSite+"\.org");
}
}else if(/\/(scripts|users)(\/|.*(\?|&)q=|.*[\?&]set=)/.test(location.href)){
_GM_xmlhttpRequest({
method: 'GET',
url: location.href.replace(/\/\/([^\.]+\.)?(greasyfork|sleazyfork)\.org/,"//$1"+otherSite+"\.org"),
onload: function(result) {
var doc = null;
try {
doc = document.implementation.createHTMLDocument('');
doc.documentElement.innerHTML = result.responseText;
}
catch (e) {
console.log('parse error');
}
if (!doc) {
return;
}
var l = doc.querySelector('ol.script-list');
if (l) {
var ml = document.querySelector('ol.script-list');
if(!ml){
ml=document.createElement("ol");
ml.setAttribute("class","script-list");
var list=document.querySelector('.sidebarred-main-content');
var ps=list.querySelectorAll("p");
for(let i=0;i<ps.length;i++){
let p=ps[i];
list.removeChild(p);
}
list.appendChild(ml);
}
var scs=l.querySelectorAll("li");
if(scs){
for(let i=0;i<scs.length;i++){
let sc=scs[i];
if(!ml.querySelector("li[data-script-id='"+sc.dataset.scriptId+"']")){
//addScore(sc);
ml.appendChild(sc);
}
}
}
}
},
onerror: function(e) {
console.log(e);
}
});
}
}
})();