Advertisement
kub12

user-script-search

Aug 15th, 2019
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.75 KB | None | 0 0
  1. // ==UserScript==
  2. // @name Userscript+ : Show Site All UserJS
  3. // @name:zh Userscript+ : 显示当前网站所有可用的UserJS脚本 Jaeger
  4. // @name:zh-CN Userscript+ : 显示当前网站所有可用的UserJS脚本 Jaeger
  5. // @name:zh-TW Userscript+ : 顯示當前網站所有可用的UserJS腳本 Jaeger
  6. // @name:ja Userscript +:現在のサイトの利用可能なすべてのUserJSスクリプトを表示するJaeger
  7. // @name:ru-RU Userscript+ : Показать пользовательские скрипты (UserJS) для сайта. Jaeger
  8. // @name:ru Userscript+ : Показать пользовательские скрипты (UserJS) для сайта. Jaeger
  9. // @namespace https://github.com/jae-jae/Userscript-Plus
  10. // @version 2.3.6
  11. // @description Show current site all UserJS,The easier way to install UserJs for Tampermonkey.
  12. // @description:zh 显示当前网站的所有可用UserJS(Tampermonkey)脚本,交流QQ群:104267383
  13. // @description:zh-CN 显示当前网站的所有可用UserJS(Tampermonkey)脚本,交流QQ群:104267383
  14. // @description:zh-TW 顯示當前網站的所有可用UserJS(Tampermonkey)腳本,交流QQ群:104267383
  15. // @description:ja 現在のサイトで利用可能なすべてのUserJS(Tampermonkey)スクリプトを表示します。
  16. // @description:ru-RU Показывает пользовательские скрипты (UserJS) для сайта. Легкий способ установить пользовательские скрипты для Tampermonkey.
  17. // @description:ru Показывает пользовательские скрипты (UserJS) для сайта. Легкий способ установить пользовательские скрипты для Tampermonkey.
  18. // @author Jaeger <JaegerCode@gmail.com>
  19. // @icon data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3ggEBCQHM3fXsAAAAVdJREFUOMudkz2qwkAUhc/goBaGJBgUtBCZyj0ILkpwAW7Bws4yO3AHLiCtEFD8KVREkoiFxZzX5A2KGfN4F04zMN+ce+5c4LMUgDmANYBnrnV+plBSi+FwyHq9TgA2LQpvCiEiABwMBtzv95RSfoNEHy8DYBzHrNVqVEr9BWKcqNFoxF6vx3a7zc1mYyC73a4MogBg7vs+z+czO50OW60Wt9stK5UKp9Mpj8cjq9WqDTBHnjAdxzGQZrPJw+HA31oulzbAWgLoA0CWZVBKIY5jzGYzdLtdE9DlcrFNrY98zobqOA6TJKHW2jg4nU5sNBpFDp6mhVe5rsvVasUwDHm9Xqm15u12o+/7Hy0gD8KatOd5vN/v1FozTVN6nkchxFuI6hsAAIMg4OPxMJCXdtTbR7JJCMEgCJhlGUlyPB4XfumozInrupxMJpRSRtZlKoNYl+m/6/wDuWAjtPfsQuwAAAAASUVORK5CYII=
  20. // @include *
  21. // @require https://greasyfork.org/scripts/23419-l-js/code/ljs.js
  22. // @require https://greasyfork.org/scripts/23420-userjs-base-js/code/userjs-basejs.js
  23. // @resource uiJs https://raw.githubusercontent.com/jae-jae/Show-Site-All-UserJS/master/dist/ui.gf.js?_=1563633089382
  24. // @resource ui https://raw.githubusercontent.com/jae-jae/Show-Site-All-UserJS/master/dist/ui.html?_=1563633089383
  25. // @resource count https://greasyfork.org/scripts/by-site.json
  26. // @grant GM_xmlhttpRequest
  27. // @grant GM_getResourceText
  28. // @grant GM_getValue
  29. // @grant GM_setValue
  30. // @grant unsafeWindow
  31. // @noframes
  32. // @connect cdn.bootcss.com
  33. // @connect raw.githubusercontent.com
  34. // @connect gist.githubusercontent.com
  35. // @connect cdnjs.cloudflare.com
  36. // @connect greasyfork.org
  37. // @run-at document-end
  38. // ==/UserScript==
  39.  
  40. unsafeWindow.GmAjax = GM_xmlhttpRequest;
  41.  
  42. (function() {
  43.  
  44. 'use strict';
  45.  
  46. var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
  47.  
  48. function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  49.  
  50. var FetchUserjs = function () {
  51. function FetchUserjs() {
  52. _classCallCheck(this, FetchUserjs);
  53.  
  54. this.host = this.getMainHost();
  55. this.showTime = 10;
  56. this.quietKey = 'jae_fetch_userjs_quiet';
  57. this.countKey = 'jae_fetch_userjs_count';
  58. this.tplBox = '<div id="jae_userscript_box"><style>.jae-userscript{position:fixed;width:370px;bottom:10px;right:20px;z-index:9999999999;height:56px}.jae-userscript-shadow{box-shadow:0 1px 4px rgba(0,0,0,.3),\\t\\t\\t\\t0px 0 20px rgba(0,0,0,.1) inset}.jae-userscript-shadow::before,.jae-userscript-shadow::after{content:"";position:absolute;z-index:-1}.jae-userscript-shadow::before,.jae-userscript-shadow::after{content:"";position:absolute;z-index:-1;bottom:15px;left:10px;width:50%;height:20%}.jae-userscript-shadow::before,.jae-userscript-shadow::after{content:"";position:absolute;z-index:-1;bottom:15px;left:10px;width:50%;height:20%;box-shadow:0 15px 10px rgba(0,0,0,.7);transform:rotate(-3deg)}.jae-userscript-shadow::after{right:10px;left:auto;transform:rotate(3deg)}</style><div class="jae-userscript" class=""></div></div>';
  59. }
  60.  
  61. _createClass(FetchUserjs, [{
  62. key: 'getMainHost',
  63. value: function getMainHost() {
  64. var host = window.location.hostname;
  65. return psl.get(host) || host.split('.').splice(-2).join('.');
  66. }
  67. }, {
  68. key: 'getCountData',
  69. value: function getCountData(host) {
  70. var countData = GM_getResourceText('count');
  71. countData = JSON.parse(countData);
  72. var count = countData[host];
  73. sessionStorage.setItem(this.countKey, count);
  74. return count;
  75. }
  76. }, {
  77. key: 'setSize',
  78. value: function setSize(w, h) {
  79. $('.jae-userscript').css({
  80. width: w,
  81. height: h
  82. });
  83. }
  84. }, {
  85. key: 'addEventListener',
  86. value: function addEventListener(eventName, handler) {
  87. document.getElementById('jae_userscript_box').addEventListener(eventName, handler);
  88. }
  89. }, {
  90. key: 'bindEvent',
  91. value: function bindEvent() {
  92. var _this = this;
  93.  
  94. this.timeId = setTimeout(function () {
  95. $('#jae_userscript_box').remove();
  96. }, this.showTime * 1000);
  97.  
  98. this.addEventListener('max', function () {
  99. _this.setSize(860, 492);
  100. $('.jae-userscript').addClass('jae-userscript-shadow');
  101. clearTimeout(_this.timeId);
  102. });
  103.  
  104. this.addEventListener('min', function () {
  105. setTimeout(function () {
  106. $('.jae-userscript').removeClass('jae-userscript-shadow');
  107. _this.setSize(370, 56);
  108. }, 500);
  109. });
  110.  
  111. this.addEventListener('close', function () {
  112. sessionStorage.setItem(_this.quietKey, 1);
  113. $('#jae_userscript_box').remove();
  114. });
  115.  
  116. this.addEventListener('loading', function () {
  117. clearTimeout(_this.timeId);
  118. });
  119. }
  120. }, {
  121. key: 'execFrameJs',
  122. value: function execFrameJs(frameWindow) {
  123. var uiJs = GM_getResourceText('uiJs');
  124. return function (jsStr) {
  125. frameWindow.eval(jsStr);
  126. }.call(frameWindow, uiJs);
  127. }
  128. }, {
  129. key: 'render',
  130. value: function render() {
  131. if (!this.isQuiet) {
  132. var count = this.getCountData(this.host);
  133. if (count) {
  134. $('body').append(this.tplBox);
  135.  
  136. var ui = GM_getResourceText('ui');
  137. var dom = document.getElementsByClassName('jae-userscript')[0];
  138. var tpl = '<iframe name="jaeFetchUserJSFrame" src="about:blank" style="width:100%;height:100%;border:0px;display: block!important;" allowTransparency="true"></iframe>';
  139. dom.innerHTML = tpl;
  140. var iframeDom = dom.children[0];
  141. iframe.write(iframeDom, ui);
  142.  
  143. this.execFrameJs(jaeFetchUserJSFrame.window);
  144.  
  145. this.bindEvent();
  146. }
  147. }
  148. }
  149. }, {
  150. key: 'isQuiet',
  151. get: function get() {
  152. var quiet = sessionStorage.getItem(this.quietKey);
  153. return quiet ? true : false;
  154. }
  155. }]);
  156.  
  157. return FetchUserjs;
  158. }();
  159.  
  160. ljs.exec(['jQuery', 'iframe', 'psl'], function () {
  161. var fu = new FetchUserjs();
  162. fu.render();
  163. });
  164.  
  165. })();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement