diff --git a/packages/gui/extra/scripts/github.script b/packages/gui/extra/scripts/github.script
index 2e7bfc00..8c9201ce 100644
--- a/packages/gui/extra/scripts/github.script
+++ b/packages/gui/extra/scripts/github.script
@@ -5,10 +5,10 @@
// @name:en Github Enhancement - High Speed Download
// @version 2.5.20
// @author X.I.U
-// @description 高速下载 Git Clone/SSH、Release、Raw、Code(ZIP) 等文件 (公益加速)、项目列表单文件快捷下载 (☁)、添加 git clone 命令
+// @description 高速下载 Git Clone/SSH、Release、Raw、Code(ZIP) 等文件 (公益加速)、项目列表单文件快捷下载 (☁)、添加 git clone 命令
// @description:zh-CN 高速下载 Git Clone/SSH、Release、Raw、Code(ZIP) 等文件 (公益加速)、项目列表单文件快捷下载 (☁)
// @description:zh-TW 高速下載 Git Clone/SSH、Release、Raw、Code(ZIP) 等文件 (公益加速)、項目列表單文件快捷下載 (☁)
-// @description:en High-speed download of Git Clone/SSH, Release, Raw, Code(ZIP) and other files (Based on public welfare), project list file quick download (☁)
+// @description:en High-speed download of Git Clone/SSH, Release, Raw, Code(ZIP) and other files (Based on public welfare), project list file quick download (☁)
// @match *://github.com/*
// @match *://hub.incept.pw/*
// @match *://hub.nuaa.cf/*
@@ -59,15 +59,19 @@
['https://download.scholar.rr.nu', '美国', '[美国 纽约] - 该公益加速源由 [FastGit 群组成员] 提供'],
//['https://download.njuu.cf', '美国', '[美国 纽约] - 该公益加速源由 [FastGit 群组成员] 提供'], // 域名挂了
['https://download.yzuu.cf', '美国', '[美国 纽约] - 该公益加速源由 [FastGit 群组成员] 提供']
- ], download_url = [
+ ];
+
+ const download_url = [
//['https://download.fastgit.org', '德国', '[德国] - 该公益加速源由 [FastGit] 提供
提示:希望大家尽量多使用前面的美国节点(每次随机 4 个来负载均衡),
避免流量都集中到亚洲公益节点,减少成本压力,公益才能更持久~', 'https://archive.fastgit.org'], // 证书过期
['https://mirror.ghproxy.com/https://github.com', '韩国', '[日本、韩国、德国等](CDN 不固定) - 该公益加速源由 [ghproxy] 提供
提示:希望大家尽量多使用前面的美国节点(每次随机 负载均衡),
避免流量都集中到亚洲公益节点,减少成本压力,公益才能更持久~'],
['https://ghproxy.net/https://github.com', '日本', '[日本 大阪] - 该公益加速源由 [ghproxy] 提供
提示:希望大家尽量多使用前面的美国节点(每次随机 负载均衡),
避免流量都集中到亚洲公益节点,减少成本压力,公益才能更持久~'],
- ['https://kkgithub.com', '香港', '[中国香港、日本、新加坡等] - 该公益加速源由 [help.kkgithub.com] 提供
提示:希望大家尽量多使用前面的美国节点(每次随机 4 个来负载均衡),
避免流量都集中到亚洲公益节点,减少成本压力,公益才能更持久~'],
+ //['https://kkgithub.com', '香港', '[中国香港、日本、新加坡等] - 该公益加速源由 [help.kkgithub.com] 提供
提示:希望大家尽量多使用前面的美国节点(每次随机 4 个来负载均衡),
避免流量都集中到亚洲公益节点,减少成本压力,公益才能更持久~'],
//['https://download.incept.pw', '香港', '[中国香港] - 该公益加速源由 [FastGit 群组成员] 提供
提示:希望大家尽量多使用前面的美国节点(每次随机 4 个来负载均衡),
避免流量都集中到亚洲公益节点,减少成本压力,公益才能更持久~'] // ERR_SSL_PROTOCOL_ERROR
- ], clone_url = [
+ ];
+
+ const clone_url = [
['https://gitclone.com', '国内', '[中国 国内] - 该公益加速源由 [GitClone] 提供
- 缓存:有
- 首次比较慢,缓存后较快'],
- ['https://kkgithub.com', '香港', '[中国香港、日本、新加坡等] - 该公益加速源由 [help.kkgithub.com] 提供
- 缓存:无(或时间很短)'],
+ //['https://kkgithub.com', '香港', '[中国香港、日本、新加坡等] - 该公益加速源由 [help.kkgithub.com] 提供
- 缓存:无(或时间很短)'],
['https://hub.incept.pw', '香港', '[中国香港、美国] - 该公益加速源由 [FastGit 群组成员] 提供'],
['https://mirror.ghproxy.com/https://github.com', '韩国', '[日本、韩国、德国等](CDN 不固定) - 该公益加速源由 [ghproxy] 提供
- 缓存:无(或时间很短)'],
//['https://gh-proxy.com/https://github.com', '韩国', '[韩国] - 该公益加速源由 [ghproxy] 提供
- 缓存:无(或时间很短)'],
@@ -88,11 +92,15 @@
//['https://hub.yzuu.cf', '美国', '[美国 纽约] - 该公益加速源由 [FastGit 群组成员] 提供'], // 暂无必要
//['https://hub.0z.gs', '美国', '[美国 Cloudflare CDN]'], // 域名无解析
//['https://hub.shutcm.cf', '美国', '[美国 Cloudflare CDN]'] // 连接超时
- ], clone_ssh_url = [
+ ];
+
+ const clone_ssh_url = [
['ssh://git@ssh.github.com:443/', 'Github 原生', '[日本、新加坡等] - Github 官方提供的 443 端口的 SSH(依然是 SSH 协议),适用于限制访问 22 端口的网络环境'],
['git@ssh.fastgit.org:', '香港', '[中国 香港] - 该公益加速源由 [FastGit] 提供']
//['git@git.zhlh6.cn:', '美国', '[美国 洛杉矶]'] // 挂了
- ], raw_url = [
+ ];
+
+ const raw_url = [
['https://raw.githubusercontent.com', 'Github 原生', '[日本 东京]'],
//['https://raw.kkgithub.com', '香港', '[中国香港、日本、新加坡等] - 该公益加速源由 [help.kkgithub.com] 提供
- 缓存:无(或时间很短)'],
['https://mirror.ghproxy.com/https://raw.githubusercontent.com', '韩国', '[日本、韩国、德国等](CDN 不固定) - 该公益加速源由 [ghproxy] 提供
- 缓存:无(或时间很短)'],
@@ -119,7 +127,9 @@
//['https://cdn.54188.cf/gh', '美国', '[美国 Cloudflare CDN] - 该公益加速源由 [PencilNavigator] 提供
- 缓存:有'], // 暂无必要
//['https://raw.fastgit.org', '德国', '[德国] - 该公益加速源由 [FastGit] 提供
- 缓存:无(或时间很短)'], // 挂了
//['https://git.yumenaka.net/https://raw.githubusercontent.com', '美国', '[美国 圣何塞]
- 缓存:无(或时间很短)'], // 连接超时
- ], svg = [
+ ];
+
+ const svg = [
''
], style = ['padding:0 6px; margin-right: -1px; border-radius: 2px; background-color: var(--XIU2-back-Color); border-color: rgba(27, 31, 35, 0.1); font-size: 11px; color: var(--XIU2-font-Color);'];
@@ -133,10 +143,10 @@
if (menu_feedBack_ID) {GM_unregisterMenuCommand(menu_rawFast_ID); GM_unregisterMenuCommand(menu_rawDownLink_ID); GM_unregisterMenuCommand(menu_gitClone_ID); GM_unregisterMenuCommand(menu_feedBack_ID); menu_rawFast = GM_getValue('xiu2_menu_raw_fast');}
// 避免在减少 raw 数组后,用户储存的数据大于数组而报错
if (menu_rawFast > raw_url.length - 1) menu_rawFast = 0
- menu_rawDownLink_ID = GM_registerMenuCommand(`${GM_getValue('menu_rawDownLink')?'✅':'❌'} 项目列表单文件快捷下载 (☁)`, function(){if (GM_getValue('menu_rawDownLink') === true) {GM_setValue('menu_rawDownLink', false); GM_notification({text: `已关闭 [项目列表单文件快捷下载 (☁)] 功能\n(刷新网页后生效)`, timeout: 3500, onclick: function(){location.reload();}});} else {GM_setValue('menu_rawDownLink', true); GM_notification({text: `已开启 [项目列表单文件快捷下载 (☁)] 功能\n(刷新网页后生效)`, timeout: 3500, onclick: function(){location.reload();}});}registerMenuCommand();});
- if (GM_getValue('menu_rawDownLink')) menu_rawFast_ID = GM_registerMenuCommand(` ${['0️⃣','1️⃣','2️⃣','3️⃣','4️⃣','5️⃣','6️⃣','7️⃣','8️⃣','9️⃣','🔟'][menu_rawFast]} [ ${raw_url[menu_rawFast][1]} ] 加速源 (☁) - 点击切换`, menu_toggle_raw_fast);
- menu_gitClone_ID = GM_registerMenuCommand(`${GM_getValue('menu_gitClone')?'✅':'❌'} 添加 git clone 命令`, function(){if (GM_getValue('menu_gitClone') === true) {GM_setValue('menu_gitClone', false); GM_notification({text: `已关闭 [添加 git clone 命令] 功能`, timeout: 3500, onclick: function(){location.reload();}});} else {GM_setValue('menu_gitClone', true); GM_notification({text: `已开启 [添加 git clone 命令] 功能`, timeout: 3500, onclick: function(){location.reload();}});}registerMenuCommand();});
- menu_feedBack_ID = GM_registerMenuCommand('💬 反馈 & 建议 [Github]', function () {GM_openInTab('https://github.com/XIU2/UserScript', {active: true,insert: true,setParent: true});GM_openInTab('https://greasyfork.org/zh-CN/scripts/412245/feedback', {active: true,insert: true,setParent: true});});
+ menu_rawDownLink_ID = GM_registerMenuCommand(`${GM_getValue('menu_rawDownLink')?'✅':'❌'} 项目列表单文件快捷下载 (☁)`, function(){if (GM_getValue('menu_rawDownLink') === true) {GM_setValue('menu_rawDownLink', false); GM_notification({text: `已关闭 [项目列表单文件快捷下载 (☁)] 功能\n(刷新网页后生效)`, timeout: 3500, onclick: function(){location.reload();}});} else {GM_setValue('menu_rawDownLink', true); GM_notification({text: `已开启 [项目列表单文件快捷下载 (☁)] 功能\n(刷新网页后生效)`, timeout: 3500, onclick: function(){location.reload();}});}registerMenuCommand();}, {title: "点击开关「项目列表单文件快捷下载 (☁)」功能"});
+ if (GM_getValue('menu_rawDownLink')) menu_rawFast_ID = GM_registerMenuCommand(` ${['0️⃣','1️⃣','2️⃣','3️⃣','4️⃣','5️⃣','6️⃣','7️⃣','8️⃣','9️⃣','🔟'][menu_rawFast]} [ ${raw_url[menu_rawFast][1]} ] 加速源 (☁) - 点击切换`, menu_toggle_raw_fast, {title: "点击切换「项目列表单文件快捷下载 (☁)」功能的加速源"});
+ menu_gitClone_ID = GM_registerMenuCommand(`${GM_getValue('menu_gitClone')?'✅':'❌'} 添加 git clone 命令`, function(){if (GM_getValue('menu_gitClone') === true) {GM_setValue('menu_gitClone', false); GM_notification({text: `已关闭 [添加 git clone 命令] 功能`, timeout: 3500, onclick: function(){location.reload();}});} else {GM_setValue('menu_gitClone', true); GM_notification({text: `已开启 [添加 git clone 命令] 功能`, timeout: 3500, onclick: function(){location.reload();}});}registerMenuCommand();}, {title: "点击开关「添加 git clone 命令」功能"});
+ menu_feedBack_ID = GM_registerMenuCommand('💬 反馈 & 建议 [Github]', function () {GM_openInTab('https://github.com/XIU2/UserScript', {active: true,insert: true,setParent: true});GM_openInTab('https://greasyfork.org/zh-CN/scripts/412245/feedback', {active: true,insert: true,setParent: true});}, {title: "点击前往反馈问题或提出建议"});
}
// 切换加速源
diff --git a/packages/gui/extra/scripts/tampermonkey.script b/packages/gui/extra/scripts/tampermonkey.script
index 892acc4f..0e2f0835 100644
--- a/packages/gui/extra/scripts/tampermonkey.script
+++ b/packages/gui/extra/scripts/tampermonkey.script
@@ -1,16 +1,21 @@
/**
+ * 当前脚本为仿照的版本,并非篡改猴插件的源码,仅供学习参考。
+ *
* @name 篡改猴(Tampermonkey)| 油猴(Greasemonkey)浏览器脚本扩展
- * @description 篡改猴 (Tampermonkey) 是拥有 超过 1000 万用户 的最流行的浏览器扩展之一。 它适用于 Chrome、Microsoft Edge、Safari、Opera Next 和 Firefox。
- * 有些人也会把篡改猴(Tampermonkey)称作油猴(Greasemonkey),尽管后者只是一款仅适用于 Firefox 浏览器的浏览器扩展程序。
- * 它允许用户自定义并增强您最喜爱的网页的功能。用户脚本是小型 JavaScript 程序,可用于向网页添加新功能或修改现有功能。使用 篡改猴,您可以轻松在任何网站上创建、管理和运行这些用户脚本。
- * 例如,使用 篡改猴,您可以向网页添加一个新按钮,可以快速在社交媒体上分享链接,或自动填写带有个人信息的表格。在数字化时代,这特别有用,因为网页常常被用作访问广泛的服务和应用程序的用户界面。
- * 此外,篡改猴 使您轻松找到并安装其他用户创建的用户脚本。这意味着您可以快速轻松地访问为您喜爱的网页定制的广泛库,而无需花费数小时编写自己的代码。
- * 无论您是希望为您的站点添加新功能的 Web 开发人员,还是只是希望 改善在线体验的普通用户,篡改猴 都是您的工具箱中的一个很好的工具。
- * @homepageUrl https://www.tampermonkey.net
+ * @author 由 Wang Liang(王良)仿照的
+ * @authorHomePage https://wangliang1024.cn
+ * @description 篡改猴 (Tampermonkey) 是拥有 超过 1000 万用户 的最流行的浏览器扩展之一。 它适用于 Chrome、Microsoft Edge、Safari、Opera Next 和 Firefox。
+ * 有些人也会把篡改猴(Tampermonkey)称作油猴(Greasemonkey),尽管后者只是一款仅适用于 Firefox 浏览器的浏览器扩展程序。
+ * 它允许用户自定义并增强您最喜爱的网页的功能。用户脚本是小型 JavaScript 程序,可用于向网页添加新功能或修改现有功能。使用 篡改猴,您可以轻松在任何网站上创建、管理和运行这些用户脚本。
+ * 例如,使用 篡改猴,您可以向网页添加一个新按钮,可以快速在社交媒体上分享链接,或自动填写带有个人信息的表格。在数字化时代,这特别有用,因为网页常常被用作访问广泛的服务和应用程序的用户界面。
+ * 此外,篡改猴 使您轻松找到并安装其他用户创建的用户脚本。这意味着您可以快速轻松地访问为您喜爱的网页定制的广泛库,而无需花费数小时编写自己的代码。
+ * 无论您是希望为您的站点添加新功能的 Web 开发人员,还是只是希望 改善在线体验的普通用户,篡改猴 都是您的工具箱中的一个很好的工具。
+ * @homepageUrl https://www.tampermonkey.net
*/
'use strict';
(function () {
const PRE = "DS-Tampermonkey:"; // 前缀
+ const MENU_ID_PRE = PRE + "menu-";
const context = {
initialized: false, // 是否已经初始化
@@ -18,11 +23,27 @@
pluginElement: null, // 插件div
menusElement: null, // 菜单列表div
menus: {}, // 菜单集合
- menuIndex: 0 // 菜单索引,用于生成menuCmdId
+ menuIndex: 0, // 菜单索引,用于生成menuCmdId
+ lastNotification: null // 最后一次通知
+ /*{
+ obj: null, // 通知对象
+ options: null, // 通知选项
+ timeout: null // 通知定时器
+ }*/
};
+
+ // 创建插件API
+ const api = {};
+
+
+ //region DS自定义的API start
+
+ // 获取上下文
+ api.getContext = () => context;
+
// 创建插件样式
- function createPluginStyle (options) {
+ api.createPluginStyle = (options) => {
options = options || {};
// 创建一个新的