// ==UserScript==
// @name GreasyFork优化
// @name:en-US GreasyFork Optimization
// @namespace https://github.com/WhiteSevs/TamperMonkeyScript
// @version 2024.12.17.15
// @author WhiteSevs
// @description 自动登录账号、快捷寻找自己库被其他脚本引用、更新自己的脚本列表、库、优化图片浏览、美化页面、Markdown复制按钮
// @description:en-US Automatically log in to the account, quickly find your own library referenced by other scripts, update your own script list, library, optimize image browsing, beautify the page, Markdown copy button
// @license GPL-3.0-only
// @icon data:image/png;base64,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
// @supportURL https://github.com/WhiteSevs/TamperMonkeyScript/issues
// @match *://greasyfork.org/*
// @require https://update.greasyfork.org/scripts/494167/1413255/CoverUMD.js
// @require https://fastly.jsdelivr.net/npm/@whitesev/utils@2.5.5/dist/index.umd.js
// @require https://fastly.jsdelivr.net/npm/@whitesev/domutils@1.4.8/dist/index.umd.js
// @require https://fastly.jsdelivr.net/npm/@whitesev/pops@1.9.5/dist/index.umd.js
// @require https://fastly.jsdelivr.net/npm/qmsg@1.2.8/dist/index.umd.js
// @require https://fastly.jsdelivr.net/npm/viewerjs@1.11.7/dist/viewer.min.js
// @require https://fastly.jsdelivr.net/npm/i18next@24.1.0/i18next.min.js
// @resource ViewerCSS https://fastly.jsdelivr.net/npm/viewerjs@1.11.7/dist/viewer.min.css
// @connect greasyfork.org
// @grant GM_addStyle
// @grant GM_deleteValue
// @grant GM_getResourceText
// @grant GM_getValue
// @grant GM_info
// @grant GM_registerMenuCommand
// @grant GM_setValue
// @grant GM_unregisterMenuCommand
// @grant GM_xmlhttpRequest
// @grant unsafeWindow
// @run-at document-start
// ==/UserScript==
(t=>{function d(n){if(typeof n!="string")throw new TypeError("cssText must be a string");let e=document.createElement("style");return e.setAttribute("type","text/css"),e.innerHTML=n,document.head?document.head.appendChild(e):document.body?document.body.appendChild(e):document.documentElement.childNodes.length===0?document.documentElement.appendChild(e):document.documentElement.insertBefore(e,document.documentElement.childNodes[0]),e}if(typeof GM_addStyle=="function"){GM_addStyle(t);return}d(t)})(" .whitesev-hide{display:none}.whitesev-hide-important{display:none!important} ");
(function (Qmsg, DOMUtils, Utils, i18next, pops, Viewer) {
'use strict';
var __defProp = Object.defineProperty;
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
var _a;
var _GM_deleteValue = /* @__PURE__ */ (() => typeof GM_deleteValue != "undefined" ? GM_deleteValue : void 0)();
var _GM_getResourceText = /* @__PURE__ */ (() => typeof GM_getResourceText != "undefined" ? GM_getResourceText : void 0)();
var _GM_getValue = /* @__PURE__ */ (() => typeof GM_getValue != "undefined" ? GM_getValue : void 0)();
var _GM_info = /* @__PURE__ */ (() => typeof GM_info != "undefined" ? GM_info : void 0)();
var _GM_registerMenuCommand = /* @__PURE__ */ (() => typeof GM_registerMenuCommand != "undefined" ? GM_registerMenuCommand : void 0)();
var _GM_setValue = /* @__PURE__ */ (() => typeof GM_setValue != "undefined" ? GM_setValue : void 0)();
var _GM_unregisterMenuCommand = /* @__PURE__ */ (() => typeof GM_unregisterMenuCommand != "undefined" ? GM_unregisterMenuCommand : void 0)();
var _GM_xmlhttpRequest = /* @__PURE__ */ (() => typeof GM_xmlhttpRequest != "undefined" ? GM_xmlhttpRequest : void 0)();
var _unsafeWindow = /* @__PURE__ */ (() => typeof unsafeWindow != "undefined" ? unsafeWindow : void 0)();
var _monkeyWindow = /* @__PURE__ */ (() => window)();
const zh_CN_language = {
GreasyFork优化: "GreasyFork优化",
请求取消: "请求取消",
请求超时: "请求超时",
请求异常: "请求异常",
通用: "通用",
账号: "账号",
密码: "密码",
语言: "语言",
"账号/密码": "账号/密码",
请输入账号: "请输入账号",
请输入密码: "请输入密码",
自动登录: "自动登录",
自动登录当前保存的账号: "自动登录当前保存的账号",
"清空账号/密码": "清空账号/密码",
点击清空: "点击清空",
"确定清空账号和密码?": "确定清空账号和密码?",
"已清空账号/密码": "已清空账号/密码",
"源代码同步【脚本列表】": "源代码同步【脚本列表】",
一键同步: "一键同步",
前往用户主页: "前往用户主页",
获取当前已登录的用户主页失败: "获取当前已登录的用户主页失败",
"源代码同步【未上架的脚本】": "源代码同步【未上架的脚本】",
"源代码同步【库】": "源代码同步【库】",
论坛: "论坛",
功能: "功能",
过滤重复的评论: "过滤重复的评论",
"过滤掉重复的评论数量(≥2)": "过滤掉重复的评论数量(≥2)",
"过滤脚本(id)": "过滤脚本(id)",
"请输入脚本id,每行一个": "请输入脚本id,每行一个",
"过滤发布的用户(id)": "过滤发布的用户(id)",
"请输入用户id,每行一个": "请输入用户id,每行一个",
"过滤回复的用户(id)": "过滤回复的用户(id)",
优化: "优化",
固定当前语言: "固定当前语言",
无: "无",
"如button、input、textarea": "如button、input、textarea",
更直观的查看版本迭代: "更直观的查看版本迭代",
美化上传图片按钮: "美化上传图片按钮",
放大上传区域: "放大上传区域",
优化图片浏览: "优化图片浏览",
使用Viewer浏览图片: "使用Viewer浏览图片",
覆盖图床图片跳转: "覆盖图床图片跳转",
"配合上面的【优化图片浏览】更优雅浏览图片": "配合上面的【优化图片浏览】更优雅浏览图片",
'需安装Greasyfork Beautify脚本,🖐点我安装': '需安装Greasyfork Beautify脚本,🖐点我安装',
代码: "代码",
添加复制代码按钮: "添加复制代码按钮",
更优雅的复制: "更优雅的复制",
快捷键: "快捷键",
"【F】键全屏、【Alt+Shift+F】键宽屏": "【F】键全屏、【Alt+Shift+F】键宽屏",
库: "库",
脚本列表: "脚本列表",
"请输入屏蔽规则,每行一个": "请输入屏蔽规则,每行一个",
请求admin内容失败: "请求admin内容失败",
解析admin的源代码同步表单失败: "解析admin的源代码同步表单失败",
源代码同步失败: "源代码同步失败",
获取用户信息失败: "获取用户信息失败",
获取用户的收藏集失败: "获取用户的收藏集失败",
"解析Script Sets失败": "解析Script Sets失败",
"获取收藏集{{setsId}}失败": "获取收藏集{{setsId}}失败",
"获取表单元素#edit_script_set失败": "获取表单元素#edit_script_set失败",
更新收藏集表单请求失败: "更新收藏集表单请求失败",
请先在菜单中录入账号: "请先在菜单中录入账号",
请先在菜单中录入密码: "请先在菜单中录入密码",
"获取csrf-token失败": "获取csrf-token失败",
"正在登录中...": "正在登录中...",
"登录失败,请在控制台查看原因": "登录失败,请在控制台查看原因",
"登录成功,1s后自动跳转": "登录成功,1s后自动跳转",
"登录失败,可能是账号/密码错误,请在控制台查看原因": "登录失败,可能是账号/密码错误,请在控制台查看原因",
"美化 历史版本 页面": "美化 历史版本 页面",
未找到history_versions元素列表: "未找到history_versions元素列表",
"yyyy年MM月dd日 HH:mm:ss": "yyyy-MM-dd HH:mm:ss",
"美化 Greasyfork Beautify脚本": "美化 Greasyfork Beautify脚本",
"❌ 最多同时长传5张图": "❌ 最多同时长传5张图片",
"❌ 图片:{{name}} 大小:{{size}}": "❌ 图片:{{name}} 大小:{{size}}",
"已过滤:{{oldCount}}": "已过滤:{{oldCount}}",
寻找引用: "寻找引用",
获取脚本id失败: "获取脚本id失败",
收藏: "收藏",
请先登录账号: "请先登录账号",
获取用户id失败: "获取用户id失败",
"获取收藏夹中...": "获取收藏夹中...",
收藏集: "收藏集",
"添加中...": "添加中...",
"添加失败,{{selector}}元素不存在": "添加失败,{{selector}}元素不存在",
"未找到{{selector}}元素": "未找到{{selector}}元素",
添加失败: "添加失败",
添加成功: "添加成功",
"删除中...": "删除中...",
删除成功: "删除成功",
添加: "添加",
刪除: "刪除",
"拦截跳转:": "拦截跳转:",
今日检查: "今日检查",
复制代码: "复制代码",
"加载文件中...": "加载文件中...",
复制成功: "复制成功",
"✅ 复制成功!": "✅ 复制成功!",
"当前语言:{{currentLocaleLanguage}},,3秒后切换至:{{localeLanguage}}": "当前语言:{{currentLocaleLanguage}},,3秒后切换至:{{localeLanguage}}",
"导航至:": "导航至:",
"请先登录账号!": "请先登录账号!",
"获取信息中,请稍后...": "获取信息中,请稍后...",
"获取成功,共 {{count}} 个": "获取成功,共 {{count}} 个",
"评分:": "评分:",
"语言:": "语言:",
"版本:": "版本:",
"更新:": "更新:",
同步代码: "同步代码",
"同步中...": "同步中...",
手动: "手动",
自动: "自动",
"同步方式:{{syncMode}}": "同步方式:{{syncMode}}",
同步成功: "同步成功",
同步失败: "同步失败",
该脚本未设置同步信息: "该脚本未设置同步信息",
"上次重载时间 {{time}},{{timeout}}秒内拒绝反复重载": "上次重载时间 {{time}},{{timeout}}秒内拒绝反复重载",
"名称:": "名称:",
"进度:": "进度:",
"未获取到【脚本列表】": "未获取到【脚本列表】",
"源代码同步成功,3秒后更新下一个": "源代码同步成功,3秒后更新下一个",
全部更新失败: "全部更新失败",
"全部更新完毕
成功:{{successNums}}
失败:{{failedNums}}
总计:{{scriptUrlListLength}}": "全部更新完毕
成功:{{successNums}}
失败:{{failedNums}}
总计:{{scriptUrlListLength}}",
"⚙ 设置": "⚙ 设置",
"{{SCRIPT_NAME}}-设置": "{{SCRIPT_NAME}}-设置",
美化页面元素: "美化页面元素",
美化历史版本页面: "美化历史版本页面",
"美化Greasyfork Beautify脚本": "美化Greasyfork Beautify脚本",
获取表单csrfToken失败: "获取表单csrfToken失败",
Toast配置: "Toast配置",
Toast位置: "Toast位置",
左上角: "左上角",
顶部: "顶部",
右上角: "右上角",
左边: "左边",
中间: "中间",
右边: "右边",
左下角: "左下角",
底部: "底部",
右下角: "右下角",
Toast显示在页面九宫格的位置: "Toast显示在页面九宫格的位置",
最多显示的数量: "最多显示的数量",
限制Toast显示的数量: "限制Toast显示的数量",
逆序弹出: "逆序弹出",
修改Toast弹出的顺序: "修改Toast弹出的顺序",
该脚本已经在该收藏集中: "该脚本已经在该收藏集中",
其它错误: "其它错误",
启用: "启用",
开启后下面的过滤功能才会生效: "开启后下面的功能才会生效",
屏蔽脚本: "屏蔽脚本",
点击查看规则: "点击查看规则",
过滤: "过滤",
代码同步: "代码同步",
美化: "美化",
修复代码行号显示: "修复代码行号显示",
修复代码行数超过1k行号显示不全问题: "修复代码行数超过1k行号显示不全问题",
"添加【寻找引用】按钮": "添加【寻找引用】按钮",
"在脚本栏添加按钮,一般用于搜索引用该库的相关脚本": "在脚本栏添加按钮,一般用于搜索引用该库的相关脚本",
"添加【收藏】按钮": "添加【收藏】按钮",
"在脚本栏添加按钮,一般用于快捷收藏该脚本/库": "在脚本栏添加按钮,一般用于快捷收藏该脚本/库",
修复图片宽度显示问题: "修复图片宽度显示问题",
修复图片在移动端宽度超出浏览器宽度问题: "修复图片在移动端宽度超出浏览器宽度问题",
"添加【今日检查】信息块": "添加【今日检查】信息块",
"在脚本信息栏添加【今日检查】信息块": "在脚本信息栏添加【今日检查】信息块",
"给Markdown添加【复制】按钮": "给Markdown添加【复制】按钮",
"在Markdown内容右上角添加【复制】按钮,点击一键复制Markdown内容": "在Markdown内容右上角添加【复制】按钮,点击一键复制Markdown内容",
开启后下面的功能才会生效: "开启后下面的功能才会生效",
检测页面加载: "检测页面加载",
"检测Greasyfork页面是否正常加载,如加载失败则自动刷新页面": "检测Greasyfork页面是否正常加载,如加载失败则自动刷新页面",
检测间隔: "检测间隔",
"设置检测上次刷新页面的间隔时间,当距离上次刷新页面的时间超过设置的值,将不再刷新页面": "设置检测上次刷新页面的间隔时间,当距离上次刷新页面的时间超过设置的值,将不再刷新页面",
美化顶部导航栏: "美化顶部导航栏",
"可能会跟Greasyfork Beautify脚本有冲突": "可能会跟Greasyfork Beautify脚本有冲突",
美化脚本列表: "美化脚本列表",
"双列显示且添加脚本卡片操作项(安装、收藏)": "双列显示且添加脚本卡片操作项(安装、收藏)",
操作面板: "操作面板",
"添加【操作面板】按钮": "添加【操作面板】按钮",
"在脚本列表页面时为顶部导航栏添加【操作面板】按钮": "在脚本列表页面时为顶部导航栏添加【操作面板】按钮",
操作: "操作",
安装此脚本: "安装此脚本",
脚本: "脚本",
历史版本: "历史版本",
自定义已读颜色: "自定义已读颜色",
在讨论内生效: "在讨论内生效",
用户: "用户",
控制台: "控制台",
"迁移【控制台】到顶部导航栏": "迁移【控制台】到顶部导航栏",
"将【控制台】按钮移动到顶部导航栏,节省空间": "将【控制台】按钮移动到顶部导航栏,节省空间",
"在版本下面添加【安装】、【查看代码】按钮": "在版本下面添加【安装】、【查看代码】按钮",
查看代码: "查看代码",
添加快捷操作按钮: "添加快捷操作按钮",
"在每一行讨论的最后面添加【过滤】按钮,需开启过滤功能才会生效": "在每一行讨论的最后面添加【过滤】按钮,需开启过滤功能才会生效",
选择需要过滤的选项: "选择需要过滤的选项",
"确定{{type}}:{{filterId}}?": "确定{{type}}:{{filterId}}?",
"已删除:{{scriptId}}": "已删除:{{scriptId}}",
帮助文档: "帮助文档",
"请输入规则,每行一个": "请输入规则,每行一个",
选择过滤的选项: "选择过滤的选项",
"脚本id:{{text}}": "脚本id:{{text}}",
"脚本名:{{text}}": "脚本名:{{text}}",
"作者id:{{text}}": "作者id:{{text}}",
"作者名:{{text}}": "作者名:{{text}}",
"作用域:脚本、脚本搜索、用户主页": "作用域:脚本、脚本搜索、用户主页",
"更新到 {{version}} 版本": "更新到 {{version}} 版本",
"降级到 {{version}} 版本": "降级到 {{version}} 版本",
"重新安装 {{version}} 版本": "重新安装 {{version}} 版本",
"发布的用户id:{{text}}": "发布的用户id:{{text}}",
自定义快捷键: "自定义快捷键",
点击录入快捷键: "点击录入快捷键",
快捷键发表回复: "快捷键发表回复",
"在输入框内按下快捷发表回复,例如:{{key}}": "在输入框内按下快捷发表回复,例如:{{key}}",
请先执行当前的录入操作: "请先执行当前的录入操作",
清空快捷键: "清空快捷键",
"请按下快捷键...": "请按下快捷键...",
成功录入: "成功录入",
"快捷键 {{key}} 已被 {{isUsedKey}} 占用": "快捷键 {{key}} 已被 {{isUsedKey}} 占用",
私聊: "私聊",
美化私信页面: "美化私信页面",
美化为左右对话模式: "美化为左右对话模式",
"最后回复:": "最后回复:",
进入: "进入",
记住回复内容: "记住回复内容",
"监听表单内的textarea内容改变并存储到indexDB中,提交表单将清除保存的数据,误刷新页面时可动态恢复": "监听表单内的textarea内容改变并存储到indexDB中,提交表单将清除保存的数据,误刷新页面时可动态恢复",
表单: "表单",
自动清理空间: "自动清理空间",
不清理: "不清理",
"{{value}} 天": "{{value}} 天",
"{{value}} 周": "{{value}} 周",
"{{value}} 个月": "{{value}} 个月",
半年: "半年",
计算中: "计算中",
根据设置的间隔时间自动清理保存的回复内容: "根据设置的间隔时间自动清理保存的回复内容",
"数据占用空间:{{size}}": "数据占用空间:{{size}}",
当前存储的数据所占用的空间大小: "当前存储的数据所占用的空间大小",
清空: "清空",
清理成功: "清理成功",
清理失败: "清理失败",
"Url To WebhookUrl": "Url 转 WebhookUrl",
关闭: "关闭",
"例如:": "例如:",
"结果:": "结果:",
转换前: "转换前",
转换后: "转换后",
使用namespace查询脚本信息: "使用namespace查询脚本信息",
脚本管理: "脚本管理",
"开启后检测已安装的脚本信息更准确,但是速度会更慢": "开启后检测已安装的脚本信息更准确,但是速度会更慢",
美化私信列表: "美化私信列表",
搜索: "搜索"
};
const en_US_language = {
GreasyFork优化: "GreasyFork Optimization",
请求取消: "http request cancel",
请求超时: "http request timeout",
请求异常: "http request error",
通用: "General",
账号: "Account",
密码: "Password",
语言: "Language",
"账号/密码": "Account/Password",
请输入账号: "Please enter your account number",
请输入密码: "Please enter password",
自动登录: "Auto Login",
自动登录当前保存的账号: "Automatically log in to the currently saved account",
"清空账号/密码": "Clear account/password",
点击清空: "Clear",
"确定清空账号和密码?": "Are you sure to clear your account and password?",
"已清空账号/密码": "Account/password cleared",
"源代码同步【脚本列表】": "Source Code Synchronization [Script List]",
一键同步: "Sync All",
前往用户主页: "Go to the user's homepage",
获取当前已登录的用户主页失败: "Failed to retrieve the currently logged in user's homepage",
"源代码同步【未上架的脚本】": "Source code synchronization [Script not listed]",
"源代码同步【库】": "Source code synchronization [Library]",
论坛: "Forum",
功能: "Features",
过滤重复的评论: "Filter duplicate comments",
"过滤掉重复的评论数量(≥2)": "Filter out duplicate comments (≥ 2)",
"过滤脚本(id)": "Filter script (id)",
"请输入脚本id,每行一个": "Please enter the script ID, one per line",
"过滤发布的用户(id)": "Filter published users (id)",
"请输入用户id,每行一个": "Please enter the user ID, one per line",
"过滤回复的用户(id)": "User (ID) who filters replies",
优化: "Optimization",
固定当前语言: "Fix current language",
无: "nothing",
"如button、input、textarea": "For example button、input、textarea",
更直观的查看版本迭代: "More intuitive viewing of version iterations",
美化上传图片按钮: "Beautify upload image button",
放大上传区域: "Enlarge the upload area",
优化图片浏览: "Optimize image browsing",
使用Viewer浏览图片: "Using Viewer to browse images",
覆盖图床图片跳转: "Overlay bed image jump",
"配合上面的【优化图片浏览】更优雅浏览图片": "Collaborate with the optimization of image browsing above to browse images more elegantly",
'需安装Greasyfork Beautify脚本,🖐点我安装': 'Greasyfork Beauty script needs to be installed,🖐 Click me to install',
代码: "Code",
添加复制代码按钮: "Add Copy Code Button",
更优雅的复制: "More elegant replication",
快捷键: "Shortcut keys",
"【F】键全屏、【Alt+Shift+F】键宽屏": "【F】 Key full screen, [Alt+Shift+F] key wide screen",
库: "Library",
脚本列表: "Script List",
"请输入屏蔽规则,每行一个": "Please enter a blocking rule, one per line",
请求admin内容失败: "Request for admin content failed",
解析admin的源代码同步表单失败: "Failed to parse the source code of admin and synchronize the form",
源代码同步失败: "Source code synchronization failed",
获取用户信息失败: "Failed to obtain user information",
获取用户的收藏集失败: "Failed to retrieve user's collection",
"解析Script Sets失败": "Parsing Script Sets failed",
"获取收藏集{{setsId}}失败": "Failed to retrieve collection {{setsId}}",
"获取表单元素#edit_script_set失败": "Failed to retrieve form element #edit_script_set",
更新收藏集表单请求失败: "Update collection form request failed",
请先在菜单中录入账号: "Please enter your account in the menu first",
请先在菜单中录入密码: "Please enter your password in the menu first",
"获取csrf-token失败": "Failed to obtain csrf token",
"正在登录中...": "Logging in...",
"登录失败,请在控制台查看原因": "Login failed, please check the reason in the console",
"登录成功,1s后自动跳转": "Login successful, automatically redirect after 1 second",
"登录失败,可能是账号/密码错误,请在控制台查看原因": "Login failed, possibly due to incorrect account/password. Please check the reason in the console",
"美化 历史版本 页面": "Beautify the historical version page",
未找到history_versions元素列表: "History_versions element list not found",
"yyyy年MM月dd日 HH:mm:ss": "yyyy-MM-dd HH:mm:ss",
"美化 Greasyfork Beautify脚本": "Beautify Greasyfork Beauty Script",
"❌ 最多同时长传5张图": "❌ Upload up to 5 images simultaneously",
"❌ 图片:{{name}} 大小:{{size}}": "❌ Image:{{name}} Size:{{size}}",
"已过滤:{{oldCount}}": "Filtered:{{oldCount}}",
寻找引用: "Find references",
获取脚本id失败: "Failed to obtain script ID",
收藏: "Collection",
请先登录账号: "Please log in to your account first",
获取用户id失败: "Failed to obtain user ID",
"获取收藏夹中...": "Get in favorites...",
收藏集: "Collection",
"添加中...": "Adding...",
"添加失败,{{selector}}元素不存在": "Add failed, {{selector}} element does not exist",
"未找到{{selector}}元素": "{{selector}} element not found",
添加失败: "Add failed",
添加成功: "Successfully added",
"删除中...": "Deleting...",
删除成功: "Delete successful",
添加: "Add in deletion",
刪除: "Delete",
"拦截跳转:": "Intercept jump:",
今日检查: "Today's inspection",
复制代码: "Copy Code",
"加载文件中...": "Loading files...",
复制成功: "Copy successful",
"✅ 复制成功!": "✅ Copy successful!",
"当前语言:{{currentLocaleLanguage}},,3秒后切换至:{{localeLanguage}}": "Current language: {{currentLocaleLanguage}}, switch to {{localeLanguage}} in 3 seconds",
"导航至:": "Navigation to:",
"请先登录账号!": "Please log in to your account first!",
"获取信息中,请稍后...": "Obtaining information, please wait...",
"获取成功,共 {{count}} 个": "Successfully obtained, a total of {{count}}",
"评分:": "Rating:",
"语言:": "Language:",
"版本:": "Version:",
"更新:": "Update:",
同步代码: "Synchronize Code",
"同步中...": "Synchronizing...",
手动: "Manual",
自动: "Automatic",
"同步方式:{{syncMode}}": "Synchronization method: {{syncMode}}",
同步成功: "Sync successful",
同步失败: "Sync failed",
该脚本未设置同步信息: "The script has not set synchronization information",
"上次重载时间 {{time}},{{timeout}}秒内拒绝反复重载": "Last reload time {{time}}, rejected repeated reloads within {{timeout}} seconds",
"名称:": "Name:",
"进度:": "Progress:",
"未获取到【脚本列表】": "Unable to obtain [Script List]",
"源代码同步成功,3秒后更新下一个": "Source code synchronization successful, update next one in 3 seconds",
全部更新失败: "All updates failed",
"全部更新完毕
成功:{{successNums}}
失败:{{failedNums}}
总计:{{scriptUrlListLength}}": "All updates completed
Success: {{successNums}}
Failure: {{failed Nums}}
Total: {{scriptUrlListLength}}",
"⚙ 设置": "⚙ Setting",
"{{SCRIPT_NAME}}-设置": "{{SCRIPT_NAME}}-Setting",
美化页面元素: "Beautify page elements",
美化历史版本页面: "Beautify the historical version page",
"美化Greasyfork Beautify脚本": "Beautify Greasyfork Beauty Script",
获取表单csrfToken失败: "Failed to obtain form csrfToken",
Toast配置: "Toast Config",
Toast位置: "Toast position",
左上角: "Top left",
顶部: "Top",
右上角: "Top right",
左边: "Left",
中间: "Center",
右边: "Right",
左下角: "Bottom left",
底部: "Bottom",
右下角: "Bottom right",
Toast显示在页面九宫格的位置: "Toast is displayed in the nine grid position on the page",
最多显示的数量: "Maximum number of displays",
限制Toast显示的数量: "Limit the number of Toast displays",
逆序弹出: "Reverse pop-up",
修改Toast弹出的顺序: "Modify the order in which Toast pops up",
该脚本已经在该收藏集中: "The script is already in this collection",
其它错误: "Ohter Error",
启用: "Enable",
开启后下面的过滤功能才会生效: "The following filtering features will only take effect after it is enabled",
屏蔽脚本: "Block script",
点击查看规则: "Click to view rules",
过滤: "Filter",
代码同步: "Code synchronization",
美化: "Beautify",
修复代码行号显示: "Fix code line number display",
修复代码行数超过1k行号显示不全问题: "Fix the problem that the code line number display is not complete when the number of lines exceeds 1k",
"添加【寻找引用】按钮": "Add the button to find references",
"在脚本栏添加按钮,一般用于搜索引用该库的相关脚本": "Add a button to the script bar, generally used to search for scripts that reference this library",
"添加【收藏】按钮": "Add the button to collect",
"在脚本栏添加按钮,一般用于快捷收藏该脚本/库": "Add a button to the script bar, generally used to quickly collect this script / library",
修复图片宽度显示问题: " Fix the problem that the picture width display is not complete",
修复图片在移动端宽度超出浏览器宽度问题: "Fix the problem that the picture width exceeds the browser width on mobile",
"添加【今日检查】信息块": "Add the block of information of today's inspection",
"在脚本信息栏添加【今日检查】信息块": "Add the block of information of today's inspection to the script information bar",
"给Markdown添加【复制】按钮": "Add the button to copy to Markdown",
"在Markdown内容右上角添加【复制】按钮,点击一键复制Markdown内容": "Add the button to copy to the top right corner of the Markdown content, click to copy the Markdown content in one click",
开启后下面的功能才会生效: "The following features will only take effect after it is enabled",
检测页面加载: "Detect page loading",
"检测Greasyfork页面是否正常加载,如加载失败则自动刷新页面": "Detect whether the Greasyfork page is loaded normally. If the loading fails, the page will be automatically refreshed",
检测间隔: "Detection interval",
"设置检测上次刷新页面的间隔时间,当距离上次刷新页面的时间超过设置的值,将不再刷新页面": "Set the interval time for detecting the last refresh page. If the time since the last refresh page exceeds the set value, the page will no longer be refreshed",
美化顶部导航栏: "Beautify the top navigation bar",
"可能会跟Greasyfork Beautify脚本有冲突": "Possible conflict with Greasymfork Beautify script",
美化脚本列表: "Beautify Script List",
"双列显示且添加脚本卡片操作项(安装、收藏)": "Double column display and add script card operation items (installation, bookmarking)",
操作面板: "Operation Panel",
"添加【操作面板】按钮": "Add [Operation Panel] button",
"在脚本列表页面时为顶部导航栏添加【操作面板】按钮": "Add an 'Operation Panel' button to the top navigation bar on the script list page",
操作: "Operation",
安装此脚本: "Install this script",
脚本: "Scripts",
历史版本: "Historical version",
自定义已读颜色: "Customize read colors",
在讨论内生效: "Effective within the discussion",
用户: "Users",
控制台: "Console",
"迁移【控制台】到顶部导航栏": "Migration of Console to Top Navigation Bar",
"将【控制台】按钮移动到顶部导航栏,节省空间": "Move the 'Console' button to the top navigation bar to save space",
添加额外的标签按钮: "Add additional label button",
"在版本下面添加【安装】、【查看代码】按钮": "Add 【 Install 】 and 【 View Code 】 buttons under the version",
查看代码: "View Code",
"添加【过滤】按钮": "Add [Filter] button",
"添加【举报】按钮": "Add [Report] button",
"在每一行讨论的最后面添加【过滤】按钮,需开启过滤功能才会生效": "Add a 'Filter' button at the end of each discussion line. The filtering features needs to be enabled for it to take effect",
"在每一行讨论的最后面添加【举报】按钮": "Add a Report button at the end of each line of discussion",
选择需要过滤的选项: "Select the options that need to be filtered",
"确定{{type}}:{{filterId}}?": "Are you sure {{type}}:{{filterId}}?",
"已删除:{{scriptId}}": "Deleted: {{scriptId}}",
帮助文档: "Help document",
"请输入规则,每行一个": "Please enter a rule, one per line",
选择过滤的选项: "Select filtering options",
"脚本id:{{text}}": "Script Id: {{text}}",
"脚本名:{{text}}": "Script Name: {{text}}",
"作者id:{{text}}": "Author Id: {{text}}",
"作者名:{{text}}": "Author Name: {{text}}",
"作用域:脚本、脚本搜索、用户主页": "Scope: Script, Script Search, User Homepage",
"更新到 {{version}} 版本": "Update To {{version}} Version",
"降级到 {{version}} 版本": "Downgrade to {{version}} Version",
"重新安装 {{version}} 版本": "Reinstall {{version}} Version",
"发布的用户id:{{text}}": "Published user ID: {{text}}",
自定义快捷键: "Customize shortcut keys",
点击录入快捷键: "Click on the input shortcut key",
快捷键发表回复: "Shortcut key to post reply",
"在输入框内按下快捷发表回复,例如:{{key}}": "Press the shortcut to post a reply in the input box, for example: {{key}}",
请先执行当前的录入操作: "Please perform the current input operation first",
清空快捷键: "Clear shortcut keys",
"请按下快捷键...": "Please press the shortcut key...",
成功录入: "Successful entry",
"快捷键 {{key}} 已被 {{isUsedKey}} 占用": "The shortcut key {{key}} is already used by {{isUsedKey}}",
私聊: "Private Chat",
美化私信页面: "Beautify the private message page",
美化为左右对话模式: "Beautify as a left-right dialogue mode",
"最后回复:": "Final response:",
进入: "Enter",
记住回复内容: "Remember the reply content",
"监听表单内的textarea内容改变并存储到indexDB中,提交表单将清除保存的数据,误刷新页面时可动态恢复": "Monitor changes to the textarea content in the form and store it in the index database. Submitting the form will clear the saved data, and dynamic recovery can be achieved when the page is accidentally refreshed",
表单: "Forms",
自动清理空间: "Automatically clear space",
不清理: "Not cleaning",
"{{value}} 天": "{{value}} day",
"{{value}} 周": "{{value}} weeks",
"{{value}} 个月": "{{value}} months",
半年: "half a year",
计算中: "In the process of calculation",
根据设置的间隔时间自动清理保存的回复内容: "Automatically clean up saved reply content according to the set interval time",
"数据占用空间:{{size}}": "Data occupancy space: {{size}}",
当前存储的数据所占用的空间大小: "The size of the space occupied by the currently stored data",
清空: "Clear",
清理成功: "Cleanup successful",
清理失败: "Cleaning failed",
"Url To WebhookUrl": "Url To WebhookUrl",
关闭: "Clsoe",
"例如:": "Example: ",
"结果:": "Result: ",
转换前: "Before Parse",
转换后: "Parse Result",
使用namespace查询脚本信息: "Use a namespace to query script information",
脚本管理: "Script management",
"开启后检测已安装的脚本信息更准确,但是速度会更慢": "Detecting the installed script information is more accurate, but slower",
美化私信列表: "Beautify the private message list",
搜索: "Search",
"新增【{{buttonText}}】按钮": "Added [{{buttonText}}] button",
"该Checkbox按钮开启后,自动过滤出包含搜索关键词的脚本": "When the Checkbox button is turned on, it automatically filters out scripts that contain search terms",
名称: "Name",
描述: "Description",
作者名称: "Author name",
获取举报表单信息失败: "Failed to obtain report form information. Procedure",
发送举报表单失败: "Failed to send the report form. Procedure",
举报: "Report",
"举报讨论:": "Report discussion:",
"举报脚本:": "Report script:",
"举报用户:": "Report user:",
"添加失败,表单数据中不包含该脚本": "Failed to add, script id not included in form data",
"删除失败,表单数据中仍包含该脚本": "The deletion failed and the script is still included in the form data",
"删除失败,{{selector}}元素不存在": "Failed to delete. {{selector}} el名称ement does not exist",
"对比选中版本差异(monacoEditor)": "Compare the differences between selected versions (monacoEditor)",
"正在加载monaco中...": "Loading monaco...",
"正在获取对比文本中...": "Retrieving comparison text...",
代码对比: "Code Comparison",
添加代码对比按钮: "Add code comparison button",
"版本号相同,不需要比较源码": "The version numbers are the same, no need to compare source code",
使用Monaco编辑器: "Use Monaco Editor",
全词匹配: "Full word match",
获取搜索关键词失败: "Failed to obtain search keyword",
"名称/描述": "Name/Description",
任一全词匹配: "Any full word match"
};
const KEY = "GM_Panel";
const ATTRIBUTE_INIT = "data-init";
const ATTRIBUTE_KEY = "data-key";
const ATTRIBUTE_DEFAULT_VALUE = "data-default-value";
const ATTRIBUTE_INIT_MORE_VALUE = "data-init-more-value";
const PROPS_STORAGE_API = "data-storage-api";
const LanguageInit = function() {
let settingPanel = _GM_getValue(KEY, {});
let lng = settingPanel["setting-language"] || "zh-CN";
i18next.init({
lng,
// lng: "zh-CN",
fallbackLng: "zh-CN",
resources: {
"zh-CN": {
translation: { ...zh_CN_language }
},
"en-US": {
translation: { ...en_US_language }
}
}
});
};
const CommonUtil = {
/**
* 添加屏蔽CSS
* @param args
* @example
* addBlockCSS("")
* addBlockCSS("","")
* addBlockCSS(["",""])
*/
addBlockCSS(...args) {
let selectorList = [];
if (args.length === 0) {
return;
}
if (args.length === 1 && typeof args[0] === "string" && args[0].trim() === "") {
return;
}
args.forEach((selector) => {
if (Array.isArray(selector)) {
selectorList = selectorList.concat(selector);
} else {
selectorList.push(selector);
}
});
return addStyle(`${selectorList.join(",\n")}{display: none !important;}`);
},
/**
* 设置GM_getResourceText的style内容
* @param resourceMapData 资源数据
* @example
* setGMResourceCSS({
* keyName: "ViewerCSS",
* url: "https://example.com/example.css",
* })
*/
setGMResourceCSS(resourceMapData) {
let cssText = typeof _GM_getResourceText === "function" ? _GM_getResourceText(resourceMapData.keyName) : "";
if (typeof cssText === "string" && cssText) {
addStyle(cssText);
} else {
CommonUtil.loadStyleLink(resourceMapData.url);
}
},
/**
* 添加标签
* @param url
* @example
* loadStyleLink("https://example.com/example.css")
*/
async loadStyleLink(url) {
let $link = document.createElement("link");
$link.rel = "stylesheet";
$link.type = "text/css";
$link.href = url;
domUtils.ready(() => {
document.head.appendChild($link);
});
},
/**
* 添加