AutoTaskFramework

自动任务

此脚本不应直接安装,它是一个供其他脚本使用的外部库。如果您需要使用该库,请在脚本元属性加入:// @require https://update.gf.qytechs.cn/scripts/462822/1368972/AutoTaskFramework.js

  1. // ==UserScript==
  2. // @name AutoTaskFramework
  3. // @icon data:image/png;base64,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
  4. // @namespace https://github.com/giveme0101/
  5. // @version 3.4
  6. // @description 自动任务框架
  7. // @author Kevin xiajun94@foxmail.com
  8. // @match *://*/*
  9. // @run-at document-idles
  10. // @noframes
  11. // ==/UserScript==
  12.  
  13. /** tool kit **/
  14. const t2lKit = {
  15. clog: function(leftText, rightText, endText) {
  16. let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
  17. const opt = Object.assign({
  18. type: 'log',
  19. leftBGColor: '#555555',
  20. leftColor: '#ededed',
  21. rightBGColor: '#ffc107',
  22. rightColor: '#262318'
  23. }, options);
  24. console[opt.type]('%c' + leftText + '%c' + rightText + (endText ? '%c\n' + endText : ''), 'color: ' + opt.leftColor + ';background-color: ' + opt.leftBGColor + ';border-radius: 2px 0 0 2px;padding: 0 5px', 'color: ' + opt.rightColor + ';background-color: ' + opt.rightBGColor + ';border-radius: 0 2px 2px 0;padding: 0 5px;', '');
  25. },
  26.  
  27. eleHide: function(ele, callback){
  28. let cnt = 1, scanInterval = setInterval(function(){
  29. const component = (typeof ele === "string" ? document.querySelector(ele) : ele);
  30. if (component || cnt++ >= 1000){
  31. clearInterval(scanInterval);
  32. component && (component.remove(), callback && callback());
  33. }
  34. }, 30);
  35. }
  36. }
  37.  
  38. /** auto task framework **/
  39. const autoTask = {
  40.  
  41. taskExec: function(_config) {
  42.  
  43. const urlHost = window.location.host;
  44. const cfgHosts = _config.host, cfgTest = _config.test;
  45.  
  46. let hostMatch = cfgHosts instanceof Array ? cfgHosts.some(ele => urlHost.indexOf(ele) > -1) : urlHost.indexOf(cfgHosts) > -1;
  47. if (!hostMatch) return;
  48.  
  49. let testMatch = (typeof cfgTest) === 'boolean' ? cfgTest : cfgTest();
  50. if (!testMatch) return;
  51.  
  52. t2lKit.clog("Auto Task™", "3.4", "plugin active [" + _config.name + "]: " + _config.desc);
  53. _config.action(_config.param);
  54. },
  55.  
  56. run: function(configs){
  57. for (const idx in configs){
  58. try {
  59. this.taskExec(configs[idx]);
  60. } catch(e){
  61. console.error("Auto Task™ plugin [" + configs[idx].name + "] throw exception: " + e);
  62. }
  63. }
  64. }
  65. }
  66.  
  67. window.autoTask = autoTask;
  68. window.t2lKit = t2lKit;

QingJ © 2025

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