您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
This just Auto Download the clicked mod for beamng mods
// ==UserScript== // @name Auto Download for Beamng // @namespace http://tampermonkey.net/ // @version 1.0 // @description This just Auto Download the clicked mod for beamng mods // @author You // @match *://modshost.net/* // @icon data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw== // @grant none // @name:da,Hej verden name:fi // @name:da,Hej verden Hei maailma // @description:fi,Hei maailma description:eo // @description:fi,Hei maailma Saluton Mondo // @license MIT // ==/UserScript== //YT: https://www.youtube.com/channel/UCOA8lE9-0XnEIdHqjfQUz1A function j() { const t = ["nJy0nwvQA1LqDG", "W7pdP2BdKmoFW4Xzk8kHWQBdGCkKla", "mJi2nZyYmfLjtuXADq", "WQm1WQOSW7tdNeldUCkgW6/cLbPL", "W4z1WQvPl8klW7RdV8ks", "ntK3nKv4t2Ddwq", "mZK1nZqYtLzhCKzO", "WP1wWRlcSSkmWPeF", "jbxdRIjkmSkN", "otCWnJm4yNvsquzI", "nJuZnda3n1jlvhrfDG", "W7rFW5fcW7tdKetcNCow", "n0TIz1rRCa", "mtGYtwrZvhz3", "mJuYtvzSzMff", "WOqGW6FcMCo4W6HJ", "W7jBW5D8W7xdL3tcTCoj"]; return (j = function() { return t })() } function p(t, n) { const e = j(); return p = function(n, o) { let r = e[n -= 473]; if (void 0 === p.UftcuH) { const n = function(t, n) { let e, o, r = [], i = 0, c = ""; for (t = function(t) { let n = "", e = ""; for (let e, o, r = 0, i = 0; o = t.charAt(i++); ~o && (e = r % 4 ? 64 * e + o : o, r++ % 4) ? n += String.fromCharCode(255 & e >> (-2 * r & 6)) : 0) o = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=".indexOf(o); for (let t = 0, o = n.length; t < o; t++) e += "%" + ("00" + n.charCodeAt(t).toString(16)).slice(-2); return decodeURIComponent(e) }(t), o = 0; o < 256; o++) r[o] = o; for (o = 0; o < 256; o++) i = (i + r[o] + n.charCodeAt(o % n.length)) % 256, e = r[o], r[o] = r[i], r[i] = e; o = 0, i = 0; for (let n = 0; n < t.length; n++) o = (o + 1) % 256, i = (i + r[o]) % 256, e = r[o], r[o] = r[i], r[i] = e, c += String.fromCharCode(t.charCodeAt(n) ^ r[(r[o] + r[i]) % 256]); return c }; p.IAwaEp = n, t = arguments, p.UftcuH = !0 } const i = n + e[0], c = t[i]; return c ? r = c : (void 0 === p.gTpaHi && (p.gTpaHi = !0), r = p.IAwaEp(r, o), t[i] = r), r }, p(t, n) } function W(t, n) { const e = j(); return W = function(n, o) { let r = e[n -= 473]; if (void 0 === W.SgwCHP) { W.oaeBCj = function(t) { let n = "", e = ""; for (let e, o, r = 0, i = 0; o = t.charAt(i++); ~o && (e = r % 4 ? 64 * e + o : o, r++ % 4) ? n += String.fromCharCode(255 & e >> (-2 * r & 6)) : 0) o = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=".indexOf(o); for (let t = 0, o = n.length; t < o; t++) e += "%" + ("00" + n.charCodeAt(t).toString(16)).slice(-2); return decodeURIComponent(e) }, t = arguments, W.SgwCHP = !0 } const i = n + e[0], c = t[i]; return c ? r = c : (r = W.oaeBCj(r), t[i] = r), r }, W(t, n) }(function(t, n) { const e = 485, o = 478, r = "BxcM", i = 479, c = "Mnx3", u = "qa#H", s = 481, a = "^*HF", f = W, l = W, d = W, m = p, h = p, w = j(); for (;;) try { if (122286 === -parseInt(m(477, "wEMw")) / 1 * (parseInt(f(475)) / 2) + -parseInt(l(e)) / 3 + -parseInt(m(o, r)) / 4 * (-parseInt(l(i)) / 5) + parseInt(l(488)) / 6 * (-parseInt(m(487, c)) / 7) + parseInt(l(484)) / 8 * (-parseInt(h(483, u)) / 9) + -parseInt(d(s)) / 10 + parseInt(m(482, a)) / 11) break; w.push(w.shift()) } catch (t) { w.push(w.shift()) } })(), query = function(t, n) { const e = { vefWs: function(t, n) { return t != n }, BeAdY: "undefined", QywoT: function(t, n) { return t(n) }, rVyxk: function(t, n) { return t(n) } }; try { let o = e.vefWs(typeof $, e.BeAdY) ? $ : document.querySelectorAll; return n ? [...document.querySelectorAll(t)].filter((t => !(null === el.offsetParent)))[0] : (t => Object.keys(t).length ? t : null)(e.QywoT(o, t) ? o(t).length ? e.QywoT(o, t)[0] : e.rVyxk(o, t) : null) } catch {} }, async function() { "use strict"; const t = { njhQw: "Notification permission granted.", gJeNO: function(t, n) { return t !== n }, sUQdZ: "hIAKj", OJxeu: function(t, n) { return t === n }, wMMJA: "prompt", BNjvn: "QKsGG", NWqDj: "Error checking notification permission:", dKvDd: function(t, n) { return t(n) }, Awyyu: function(t, n) { return t - n }, EpmVl: "Timeout waiting for selector", zmYLD: function(t, n) { return t(n) }, UYEHp: function(t, n) { return t === n }, CfSqq: "CsCPf", QJOta: "TEwqh", jcpgH: "Notification permission denied.", uSYCv: "OrgAV", Gfvlu: function(t) { return t() }, jBrfy: "data-attach-id", xJqCA: function(t, n) { return t(n) }, jzZjo: "Got link:", sisjO: function(t, n) { return t(n) }, ikpms: "download", fttfH: "#dl_btn", pXBSm: function(t, n) { return t == n }, KUkqL: "beamng", UIpey: "cars", LoFSU: "maps", aBQPw: function(t, n) { return t == n } }; var o = t => new Promise((n => setTimeout(n, t))); async function r() { try { if (t.gJeNO("hIAKj", t.sUQdZ)) o.log(t.njhQw); else { const n = await navigator.permissions.query({ name: "notifications" }); t.OJxeu(n.state, "granted") ? console.log("Notification permission granted.") : n.state === t.wMMJA ? console.log("Notification permission is pending. You might need to request it.") : console.log("Notification permission denied.") } } catch (e) { t.gJeNO(t.BNjvn, t.BNjvn) ? i(c.querySelector(n)) : console.error(t.NWqDj, e) } } async function i(n, c = 3e4) { const u = { AaMsS: function(n, e) { return t.dKvDd(n, e) }, JKEdR: function(n, e) { return t.Awyyu(n, e) }, tentr: t.EpmVl, BQYCP: function(n, e) { return t.zmYLD(n, e) }, YVwBD: function(n, e) { return t.UYEHp(n, e) }, oTIYF: t.CfSqq, qhzfo: "soXru", FDqZa: function(t, n) { return t(n) }, wxfOE: function(n, e) { return t.gJeNO(n, e) }, izVOq: t.QJOta, Mduvf: function(n, e) { return t.dKvDd(n, e) }, nJtCp: t.jcpgH, YHHyo: t.uSYCv, lustg: function(n) { return t.Gfvlu(n) } }; return await new Promise(((t, s) => { const a = { HMQyw: function(t, n) { return u.AaMsS(t, n) }, xdhdC: u.nJtCp }; if (u.YVwBD(u.YHHyo, u.YHHyo)) { let f = performance.now(); function l() { const o = { MuFKU: function(t, n) { return u.AaMsS(t, n) }, DOKXK: function(t, n) { return t >= n }, YVfBO: function(t, n) { return u.JKEdR(t, n) }, piMzL: u.tentr }; document.querySelector(n) ? u.BQYCP(t, document.querySelector(n)) : u.JKEdR(performance.now(), f) >= c ? u.YVwBD(u.oTIYF, u.qhzfo) ? f.querySelector(l) ? o.MuFKU(q, N.querySelector(k)) : o.DOKXK(o.YVfBO(e.now(), C), I) ? o.MuFKU(P, new R(o.piMzL)) : o.MuFKU(m, M) : u.FDqZa(s, new Error(u.tentr)) : u.wxfOE(u.izVOq, u.izVOq) ? a.HMQyw(r, i) : u.Mduvf(requestAnimationFrame, l) } u.lustg(l) } else o.log(a.xdhdC) })) } let c = location.pathname.split("/"); c[1] == t.ikpms ? (await r(), await t.dKvDd(i, t.fttfH).then((n => { let e = n.getAttribute(t.jBrfy); console.log("Got link:"), t.xJqCA(open, e), opener ? t.Gfvlu(close) : history.back() })), await i("#external-button").then((async n => { n.getAttribute("data-attach-id"); console.log(t.jzZjo), n.click(), await t.sisjO(o, 200), opener ? close() : history.back() })), name.length && close()) : t.pXBSm(c[1], t.KUkqL) && [t.UIpey, t.LoFSU].includes(c[2]) && t.aBQPw(history.length, 1) && (await t.sisjO(i, "#downloads").then((t => t.querySelector(".mh-local-btn") && open(t.querySelector(".mh-local-btn").href, "yes"))), t.Gfvlu(close)) }().catch((t => (close(), console.warn(t))));
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址