您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Digit77下载助手。自动复制提取码,跳过ouo.io的三秒等待时间!
- // ==UserScript==
- // @name Digit77 Helper
- // @namespace cn.XYZliang.digit77Helper
- // @version 2.3
- // @description Digit77下载助手。自动复制提取码,跳过ouo.io的三秒等待时间!
- // @require https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.slim.min.js
- // @license GNU General Public License v3.0
- // @author XYZliang
- // @supportURL https://qianniuossplus.jxufesoftware.club/README.html
- // @homepage https://gf.qytechs.cn/zh-CN/scripts/445961-digit77-helper
- // @match *://www.digit77.com/*
- // @match *://ouo.press/*
- // @match *://ouo.io/*
- // @match *://app.mediatrack.cn/shares/*
- // @match *://app.mediatrack.cn/shares/*
- // @match *://download.kstore.space/download/2078/Digit77Helper/*
- // @match *://*.sharepoint.com/*
- // @match *://www.aliyundrive.com/*
- // @match *://cloud.189.cn/*
- // @match *://*.jxufesoftware.club/*
- // @match *://www.wulihub.com.cn/gc/JPKAvA/*
- // @icon https://www.digit77.com/lib/img/logo.svg
- // @grant unsafeWindow
- // @grant GM_setClipboard
- // @grant GM_setValue
- // @grant GM_getValue
- // @grant GM_deleteValue
- // @grant GM_listValues
- // @grant GM_xmlhttpRequest
- // @grant GM_notification
- // @run-at document-end
- // @connect *
- // ==/UserScript==
- /* globals jQuery, $ */
- // 用户设置
- let seeting = GM_getValue("seeting")
- if (seeting == null || seeting.length == 0 || seeting == undefined || seeting) {
- seeting = "{\"autofill\":true,\"ouo\":true,\"unzip\":true,\"fenmiaozhen\":true,\"baidu\":true,\"onedriver\":true,\"tianyi\":true,\"aliyun\":true,\"error\":true,\"fmzautofill\":true,\"fmzautodown\":true,\"fmzautofav\":false,\"fmzautosave\":false,\"bdautofill\":true,\"bdautodown\":true,\"bdautosave\":false,\"odautofill\":true,\"odautodown\":false,\"tyautofill\":true,\"tyautodown\":true,\"tyautosave\":false,\"alautofill\":true,\"alautodown\":true,\"alautosave\":false}"
- GM_setValue("seeting", seeting)
- }
- seeting = JSON.parse(seeting)
- let values = GM_listValues()
- if (values.length > 200) {
- for (let i = 0; i < values.length; i++) {
- if (values[i] != "seeting") {
- GM_deleteValue(values[i])
- }
- }
- consoleLog("已自动清除缓存!")
- }
- // 脚本代码
- 'use strict';
- let url = location.host;
- consoleLog("Digit77 Helper 加载成功!")
- if (url == "www.digit77.com" && seeting.autofill) {
- if ($("#history_version details").length > 0) {
- $("#history_version th")[2].innerText = "下载链接(已开启Digit77 Helper自动复制提取码)"
- $("#history_version a").each(function () {
- let codeText = this.innerHTML;
- let code = codeText.split(" ")[1]
- if (code != undefined) {
- let ouoLinkCode = (this.href).split("/")
- GM_setValue(ouoLinkCode[ouoLinkCode.length - 1], code);
- // this.addEventListener('click', function () {
- // let text=code
- // GM_setClipboard(text)
- // });
- }
- })
- let frontElement = $("#history_version details")[0]
- let insertHtml = '<details style="margin-top: 20px;">' +
- '<summary style="background-color: crimson;">Digit77 Helper设置</summary>' +
- ' <div class="table-wrapper" style="padding-right: 10px;overflow-x: hidden;">' +
- '<iframe src="https://download.kstore.space/download/2078/Digit77Helper/index.html" style="border: 5px solid #e835351a;border-radius: 10px;width: 100%;height: 400px;overflow-x: hidden;">' +
- '</iframe></div>' +
- '</details>'
- frontElement.insertAdjacentHTML('afterend', insertHtml);
- }
- } else if (url.indexOf("ouo") != -1 && seeting.ouo) {
- consoleLog("正在跳过ouo")
- $(document).ready(function () {
- $("h4").innerText = "Digit77 Help正在跳过等待!"
- $(".btn-main").innerText = "欢迎使用Digit77 Helper"
- })
- if (location.pathname.split("/")[1] == "go") {
- let reallyUrlGeter = location.origin + "/xreallcygo/" + location.pathname.split("/")[2]
- let reallyUrlData = $("#form-go").serializeArray()
- GM_xmlhttpRequest({
- method: "POST",
- url: reallyUrlGeter,
- data: $.param(reallyUrlData),
- headers: {
- "Content-Type": "application/x-www-form-urlencoded;charset=UTF-8",
- },
- onload: function (response) {
- let url = addGetParameter(response.finalUrl, "Digit77HelperPwd", GM_getValue(location.pathname.split("/")[2]))
- if (response.status == 200) {
- //延长一下待在页面的时间,提升广告的佣金?
- setTimeout(function () {
- window.location.href = url
- }, 1000)
- } else {
- failedToGetJumpAddress(GM_getValue(location.pathname.split("/")[2]))
- }
- },
- onerror: function () {
- failedToGetJumpAddress(GM_getValue(location.pathname.split("/")[2]))
- }
- });
- } else {
- //延长一下待在页面的时间,提升广告的佣金?
- setTimeout(function () {
- $(".btn-main").click()
- }, 1500)
- }
- } else if (url == "app.mediatrack.cn" && seeting.fenmiaozhen) {
- let pass = getUrlParam("Digit77HelperPwd")
- if ((pass != null || pass != "") && seeting.fmzautofill) {
- let code = (location.pathname).split("/")[2]
- let keyName = "mtweb_" + code + "password"
- let extractCodeThere = false
- if (localStorage.getItem(keyName) != null) {
- extractCodeThere = true
- consoleLog("提取码存在!延期提取码。")
- } else {
- extractCodeThere = false
- consoleLog("提取码不存在!注入提取码。")
- }
- //{"value":"9742","options":{"seconds":86400},"expiredAt":1654346827431,"createAt":1654260427431}
- let now = new Date().getTime()
- let expiredTime = 24 * 60 * 60
- let codeValue = {
- "value": pass,
- "options": {
- "seconds": expiredTime
- },
- "expiredAt": now + expiredTime * 1000,
- "createAt": now
- }
- window.localStorage.setItem(keyName, JSON.stringify(codeValue))
- consoleLog("已注入提取" + pass)
- if (!extractCodeThere) {
- window.location.reload()
- }
- } else {
- consoleLog("没有提取码或未打开功能!")
- }
- let time = setInterval(function () {
- let fun = document.getElementsByClassName("MuiButtonBase-root MuiButton-root MuiButton-contained btn normal")
- if (fun.length > 2) {
- if (seeting.fmzautodown) {
- fun[2].click()
- let time1 = setInterval(function () {
- let downFun = $(":contains(确定)")
- if (downFun.length > 0) {
- consoleLog("检测到下载框")
- clearInterval(time1)
- setTimeout(function () {
- downFun[downFun.length -1].click()
- copyUnzipPwd()
- }, 500)
- }
- }, 333)
- }
- if (seeting.fmzautofav) {
- fun[0].click()
- }
- if (seeting.fmzautosave) {
- fun[1].click()
- }
- clearInterval(time)
- }
- }, 333)
- } else if (url.indexOf("sharepoint.com") != -1 && seeting.onedriver) {
- if (location.pathname.indexOf("onedrive.aspx") == -1) {
- consoleLog("非下载页面")
- if (seeting.odautofill && getUrlParam("Digit77HelperPwd") != null) {
- document.getElementById("txtPassword").value = getUrlParam("Digit77HelperPwd")
- document.getElementById("btnSubmitPassword").click();
- }
- } else {
- consoleLog("下载页面")
- if (seeting.odautodown) {
- let time = setInterval(function () {
- let downFun = document.getElementsByName("下载")
- if (downFun.length > 0) {
- consoleLog("检测到下载框")
- clearInterval(time)
- setTimeout(function () {
- downFun[0].click()
- copyUnzipPwd()
- }, 333)
- }
- }, 333)
- }
- }
- } else if (url = "www.aliyundrive.com" && document.title == "阿里云盘分享" && seeting.aliyun) {
- function downSave() {
- let time = setInterval(function () {
- let downFun = document.getElementsByClassName("ant-dropdown-trigger")
- if (downFun.length > 0) {
- clearInterval(time)
- setTimeout(function () {
- document.getElementsByClassName("ant-dropdown-trigger")[1].click()
- if (seeting.alautodown) {
- let time = setInterval(function () {
- let downFun = $(":contains(下载)")
- if (downFun.length > 10) {
- consoleLog("检测到下载框")
- clearInterval(time)
- setTimeout(function () {
- downFun[downFun.length - 1].click()
- copyUnzipPwd()
- }, 333)
- }
- }, 333)
- }
- if (seeting.alautosave) {
- let time = setInterval(function () {
- let saveFun = $(":contains(转存)")
- if (saveFun.length > 5) {
- consoleLog("检测到转存框")
- clearInterval(time)
- setTimeout(function () {
- saveFun[saveFun.length - 1].click()
- }, 333)
- }
- }, 333)
- }
- }, 333)
- }
- }, 333)
- }
- let time = setInterval(function () {
- let saveFun = $(":contains(下载)")
- if (saveFun.length > 5) {
- consoleLog("加载完成")
- clearInterval(time)
- if ($(":contains(极速查看文件)").length > 0 && seeting.alautofill) {
- let input = ['.ant-input', 'input[type="text"]']
- let button = ['.button--fep7l', 'button[type="submit"]']
- doFillAction(input, button, getUrlParam("Digit77HelperPwd"));
- downSave()
- } else {
- downSave()
- }
- }
- }, 333)
- } else if (location.host == "cloud.189.cn" && seeting.tianyi) {
- function downSave() {
- if (seeting.tyautodown) {
- let time = setInterval(function () {
- let downFun = $(":contains(下载)")
- if (downFun.length > 10) {
- consoleLog("检测到下载框")
- clearInterval(time)
- setTimeout(function () {
- $(".btn-download")[0].click()
- }, 333)
- }
- }, 333)
- }
- if (seeting.tyautosave) {
- let time = setInterval(function () {
- let saveFun = $(":contains(转存)")
- if (saveFun.length > 5) {
- consoleLog("检测到转存框")
- clearInterval(time)
- setTimeout(function () {
- document.getElementsByClassName("btn-save-as")[0].click()
- }, 333)
- }
- }, 333)
- }
- }
- let time = setInterval(function () {
- let saveFun = $(":contains(属于私密分享)")
- if (saveFun.length > 5) {
- consoleLog("加载完成")
- clearInterval(time)
- let notice = $(":contains(属于私密分享)")
- setTimeout(function () {
- if ($(notice[notice.length - 1]).is(":visible") && seeting.tyautofill) {
- var input = ['.access-code-item #code_txt']
- var button = ['.access-code-item .visit']
- doFillAction(input, button, getUrlParam("Digit77HelperPwd"));
- downSave()
- } else {
- downSave()
- }
- }, 1000)
- }
- }, 333)
- } else {
- if ($(":contains(Helper设置)").length > 5) {
- consoleLog("进入设置页面!")
- document.getElementById("save").addEventListener('click', function () {
- let data = sumbit()
- GM_setValue("seeting", data);
- GM_notification("设置保存成功!", "Digit77 Helper")
- })
- document.getElementById("clean").addEventListener('click', function () {
- let datas = GM_listValues()
- for (let i = 0; i < datas.length; i++) {
- if (datas[i] != "seeting") {
- GM_deleteValue(datas[i])
- }
- }
- GM_notification("设置清除成功!", "Digit77 Helper")
- })
- let inputs = $("#seeting input")
- inputs.each(function () {
- let key = this.id
- this.checked = seeting[key]
- })
- updateForm()
- }
- }
- function failedToGetJumpAddress(pwd) {
- if (!seeting.error) {
- return
- }
- GM_notification("获取ouo跳转链接失败!这导致无法自动填写提取码,请手动粘贴提取码!", "Digit77 helper错误")
- GM_setClipboard(pwd)
- }
- function addGetParameter(url, name, value) {
- url += (url.split("?")[1] ? "&" : "?") + name + "=" + value;
- return url;
- }
- function getUrlParam(name) {
- var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); //构造一个含有目标参数的正则表达式对象
- var r = window.location.search.substr(1).match(reg); //匹配目标参数
- if (r != null) return encodeURI(r[2]);
- return null; //返回参数值
- }
- function consoleLog(text) {
- console.log("%c" + text, "color: #ff0000; font-size: 16px; font-weight: bold;");
- }
- function insterScript(src, type) {
- var importJs = document.createElement('script') //在页面新建一个script标签
- importJs.setAttribute("type", type) //给script标签增加type属性
- importJs.setAttribute("src", src) //给script标签增加src属性, url地址为cdn公共库里的
- document.body.insertBefore(importJs, document.body.firstChild)
- }
- function sumbit() {
- let inputs = $("#seeting input")
- let datas = {}
- inputs.each(function () {
- datas[$(this).attr("id")] = this.checked
- })
- let data = JSON.stringify(datas)
- return data
- }
- function updateForm(notFirst = true) {
- let inputs = $("#seeting input")
- inputs.each(function () {
- let id = $(this).attr("id")
- switch (id) {
- case "fenmiaozhen":
- if (this.value == "on" || notFirst)
- openfmz.click()
- break
- case "baidu":
- if (this.value == "on" || notFirst)
- openbd.click()
- break
- case "onedriver":
- if (this.value == "on" || notFirst)
- openod.click()
- break
- case "tianyi":
- if (this.value == "on" || notFirst)
- openty.click()
- break
- case "aliyun":
- if (this.value == "on" || notFirst)
- openal.click()
- break
- }
- })
- }
- function copyUnzipPwd(){
- GM.GM_setClipboard("digit77.com")
- }
- // 以下代码修改自 网盘智能识别助手
- let util = {
- clog(c) {
- console.group('[网盘智能识别助手]');
- console.log(c);
- console.groupEnd();
- },
- parseQuery(name) {
- let reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
- let r = location.search.substr(1).match(reg);
- if (r != null) return (r[2]);
- return null;
- },
- getValue(name) {
- return GM_getValue(name);
- },
- setValue(name, value) {
- GM_setValue(name, value);
- },
- sleep(time) {
- return new Promise((resolve) => setTimeout(resolve, time));
- },
- addStyle(id, tag, css) {
- tag = tag || 'style';
- let doc = document,
- styleDom = doc.getElementById(id);
- if (styleDom) return;
- let style = doc.createElement(tag);
- style.rel = 'stylesheet';
- style.id = id;
- tag === 'style' ? style.innerHTML = css : style.href = css;
- document.head.appendChild(style);
- },
- isHidden(el) {
- try {
- return el.offsetParent === null;
- } catch (e) {
- return false;
- }
- },
- query(selector) {
- if (Array.isArray(selector)) {
- let obj = null;
- for (let i = 0; i < selector.length; i++) {
- let o = document.querySelector(selector[i]);
- if (o) {
- obj = o;
- break;
- }
- }
- return obj;
- }
- return document.querySelector(selector);
- }
- };
- function doFillAction(inputSelector, buttonSelector, pwd) {
- let maxTime = 10;
- let ins = setInterval(async () => {
- maxTime--;
- let input = util.query(inputSelector);
- let button = util.query(buttonSelector);
- if (input && !util.isHidden(input)) {
- clearInterval(ins);
- let lastValue = input.value;
- input.value = pwd;
- //Vue & React 触发 input 事件
- let event = new Event('input', {
- bubbles: true
- });
- let tracker = input._valueTracker;
- if (tracker) {
- tracker.setValue(lastValue);
- }
- input.dispatchEvent(event);
- await util.sleep(500); //1秒后点击按钮
- button.click();
- } else {
- maxTime === 0 && clearInterval(ins);
- }
- }, 333);
- }
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址