大人的Greasy Fork

访问匿名不可用内容时跳转至sleazyfork,未登录状态下尝试在sleazyfork查找内容后合并至greasyfork | Merge sleazyfork results into greasyfork when the script is no longer anonymously available

目前為 2016-10-08 提交的版本,檢視 最新版本

  1. // ==UserScript==
  2. // @name 大人的Greasy Fork
  3. // @namespace hoothin
  4. // @version 0.1
  5. // @description 访问匿名不可用内容时跳转至sleazyfork,未登录状态下尝试在sleazyfork查找内容后合并至greasyfork | Merge sleazyfork results into greasyfork when the script is no longer anonymously available
  6. // @author hoothin
  7. // @match http*://greasyfork.org/*
  8. // @match http*://www.greasyfork.org/*
  9. // @grant GM_xmlhttpRequest
  10. // ==/UserScript==
  11.  
  12. (function() {
  13. 'use strict';
  14. if(document.querySelector('span.sign-in-link')){
  15. if(/scripts\/search/.test(location.href)){
  16. GM_xmlhttpRequest({
  17. method: 'GET',
  18. url: location.href.replace(/\/\/([^\.]+\.)?greasyfork\.org/,"//$1sleazyfork\.org"),
  19. onload: function(result) {
  20. var doc = null;
  21. try {
  22. doc = document.implementation.createHTMLDocument('');
  23. doc.documentElement.innerHTML = result.responseText;
  24. }
  25. catch (e) {
  26. console.log('parse error');
  27. }
  28. if (!doc) {
  29. return;
  30. }
  31. var ml = document.querySelector('#browse-script-list');
  32. var l = doc.querySelector('#browse-script-list');
  33. if (l) {
  34. var scs=l.querySelectorAll("li");
  35. if(scs){
  36. for(var sc of scs){
  37. if(!ml.querySelector("li[data-script-id='"+sc.getAttribute("data-script-id")+"']")){
  38. ml.appendChild(sc);
  39. }
  40. }
  41. }
  42. }
  43. },
  44. onerror: function(e) {
  45. console.log(e);
  46. }
  47. });
  48. }else if(/scripts\/\d+/.test(location.href)){
  49. if(!document.querySelector("#script-info")){
  50. location.href=location.href.replace(/\/\/([^\.]+\.)?greasyfork\.org/,"//$1sleazyfork\.org");
  51. }
  52. }
  53. }
  54. })();