NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript== // @name 图奇/推趣/Twitch解决无法访问问题&畅享全球直播娱乐! // @namespace Twitch-Access-Assistant // @version 1.6.7 // @description Twitch畅快访问插件,汇集了来自世界各地的游戏玩家、内容创作者和观众,由于网络限制,访问Twitch在某些地区可能受到限制,Twitch自由访问插件/绕过网络限制及加速网络/全球直播娱乐,致力于为用户提供畅通的Twitch访问,此脚本的设计旨在为用户带来便利和自由,让您能够尽情欣赏全球游戏直播、观看精彩比赛、与喜爱的主播互动。 // @author Twitch-Access-Assistant // @icon data:image/png;base64,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 // @resource logo data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAH0UlEQVR4nO2dXWhURxTHz103az52rVpNjaIRX6xpMWlT0wRLLCIUPx4SsEZbCW2pVPRBA30rQkH6VtE+CCkWC9YiEUER7AdGqG1BpS02lRpETI2iWDU2uIleN2ZvcxKXpmaTO3Pv3J25e84PkkC4d+6Q/3/OnDkzd2M5QwBDlojuDjB6YQMQhw1AHDYAcdgAxGEDEIcNQBw2AHHYAMSJBtn4vZtpOHM4Ah2nAe7cArhxA+BRCsBOBfnU8FEYA5g6ZehnEUD5AoDKZQB169IwfXbw49MKohR8+kAavv40DX/fjrLYPqhYCLCiCWD19uCeodQAJ/YAfLnbhmSyUFWTzBCJhA0NzYOwcWeJ8raVGOBahwO7N1tw8ZKKLjHjMX8uwEcHHJhXaSlr07cBDu7oh7Z9BZBKxVT1iZmAWCwFTZsGlEUDXwZo3WrD0UMc7nXQuMGGzXv9/+09G+Cz92z45hiLr5NVDTZs2+9PA0/rDBz5LL5+jh99PKyFH6QNgHM+h30ziFrxYS1QE69IGQCzfUz4GLNATVAbL0jlAB9UAly97uk5TMBg0Wj3Gfn7hCMAhhkW31ywBoOFOFmEI8Dacq7wmQ5WDI90y2kkFAHQWSy++aBGuA8jg5AB2ts89YfRAG7CyeBqANzS5Rp/eMAdWNRMFFcD4H4+Ex5w+11GM9cr8TAHEy5kNHM1QHeXn64wOsDTV6K4GsB+6KcrjA7w6J0orgbove+nK4wOHkkcw3M9FGrKmb7bA8fhL/tjSDk9uruilGnRenix+CulbcpoFuipYFXcH/wDOh+8D4/Sd3R3JQB+1Pp04w2A4v/W9xoMpJO6u5KXGL3If5i+xuIHjLEGwJF/NlnF4geMkQYYCfuvD4n/j+6u5D3GGeC/OX9i8dvb2wF3ssP0ZSJGJYEo/i/JV2HQ8XfQkRHHmAiQSfhY/NxihAE44dOHdgNwwqcXrTkAF3n0oy0CsPhmoMUAKP75vhUsvgFoMUDng3fydGMnfGgxQL5t6YYZ7asARi+kDRCNRsd8VVRUBHafiRhVCs41g4ODY37X3+/+qrXX+0yEdARg2ADkYQMQhw1AHDYAcdgAxGEDEIcNQBw2AHHYAMRhAxCHDUAcNgBx2ADEYQMQh/R5AK/v65n6np8XOAIQhw2QIy5fvqy7C1lhA+SAu3fvwsqVK3V3IytsgIBB8evr6+HKlSu6u5IVNkCAYNivra2Fzs7Oca+JWc/msEdjYQMERCbsd3WN/1m7hZEyWFxyLIe9GgvpZWBQoPg48icK+wWRabAkcRaKIvNy2LOxcARQjMicPzkyE2oTv2sXH2EDKERkzsewX5P41QjxETaAIlB8kTm/Kv6dMeIjnAMoYLT445WJMeybMOc/TWgNgH/00tJSoWvLyspgxowZUm3btvinlTU2Nk4ofkEkAS/F240THwmtAVpaWoSv3bJlC+zatUvo2gsXLsDy5cuhr69PuP2JzILiV8d/himTFgu3l0tCawCZEXrrltj/UEHxa2pqpNqeCFzqVcd/MFZ8hJPAJ5w6dQqWLl1KSnwktBFAJSg+zuPJpJoPrcKwb8o63w3yEQDFX79+vVLxcc4Pg/gI6QigeuTjUg+zfdPD/mjIGgATvjVr1iib81H8RcVfhEp8hKQBMks9leKHbeRnIJcDYNhH8XHTRgWZIk8YxUdIGQBHPiZ8KsU3ucgjApkpAMXHdb66bD8c63w3SESAnp4eFn8cSEQA/AdT2T7c0QthKvKIQCICqBQ/TEUeEUgYQAW41At7wpcNNoAAeJInzEu9idCSA0StOESsmK820s7A0HcvL2laYFmThr6LeX9yZBa8Ev8pr8L+aLQYoKrkWxhwen21cS5ZDY7zWPIuCxLRRfBC8SHhO4ojC4YNm69oMQCOpiLI/Yh6Jlo1/CJGvo5mL5BYBiJTC2rh5ZKTeT2avUDAANbwyGfxs+OaCRX6y9U0MyJ+dfxHUuLLaOZqgMmhNcBIwodzPiXxkalTxK91NcCcOX66og8Uf0n8HMmEr7BI/FpXA8yc5acrOsCRXwF1iT/JjfwM5QvEr3U1QOUyP13JNSNzPo58ysho5mqAunXpkCSCI3M+tYQvG6iZKK4GmD47As+Vylbccg+OfKwwUhe/YuGIZqIIXfn2h2bvGWGRB0c+xYTvaVY0yV1vOYIfe7m23IZkstBLnwLhZG8BOM4gyXX+eCQSNhzpltNIeGi/22KO+Aju5rH4/6ehWf7gi3AEQFrqAC5ekn5GIJzvXwXPF7Vy2H/C/LkAn3fI3ydlgGsdDmx9YwBSqVAsC8gQi6Vg7/cFMK/Skr5XKrvDBzRtGoDHjviHJzDBglqgJl7ER6QiQIbWrTYcPWRWTkCVxg02bN7rXQtP6zt84KoGNe/VMd7AkY8a+BEf8bzA37a/cNh9jB7efCs6rIFfPE0Bozm4ox/a9hVwYpgjMOHDOX/jzhIl7fk2AIKrg0+aLbh6XUWXmPHAMm9Lq+M54cuGEgNkwGhw7MAkoyqG+QBW+LAQt3q7+raVGiDDiT0A7W3mFI3CCO7A4iYc7sMsaw5uLyYQA2S4dzMNZw5HoOM0QHcXgP0QoPf+0M9UUE8MJyg2Hr3D01d4AAf383FLV2ZXzyuBGoAxH7P3eZnAYQMQhw1AHDYAcdgAxGEDEIcNQJx/AcA5RWYfS72TAAAAAElFTkSuQmCC // @require http://cdn.staticfile.org/jquery/1.12.0/jquery.min.js // @supportURL http://letsmain.com/twitch-access-master?utm_source=openuserjs // @include *://*.twitch.com/* // @match *://www.twitch.com/* // @include *://*.google.com/* // @include *://*.bing.com/* // @include *://*.yandex.com/* // @include *://*.duckduckgo.com/* // @include *://*.baidu.com/* // @include *://*.sogou.com/* // @include *://*.so.com/* // @include *://*.sm.cn/* // @include *://*.startpage.com/* // @include *://*.fsoufsou.com/* // @include *://*.deepl.com/* // @grant GM_getValue // @grant GM_setValue // @grant GM_download // @grant GM_addStyle // @grant GM_openInTab // @grant unsafeWindow // @run-at document-idle // @run-at document-start // @grant GM_setClipboard // @grant GM_getResourceURL // @grant GM_getResourceURL // @grant GM_getResourceText // @grant GM_xmlhttpRequest // @compatible Chrome // @compatible Edge // @compatible Firefox // @compatible Safari // @compatible Opera // @license MIT // ==/UserScript== (function() { 'use strict'; var $ = window.jQuery; if (!$) { var script = document.createElement('script'); script.src = 'https://code.jquery.com/jquery-3.6.1.min.js'; document.head.appendChild(script); $ = window.jQuery; } var currentUrl = window.location.href; var currentHost = window.location.host; var resourceAnalysis = {}; resourceAnalysis.addHtml = function() { var logoImgUrl = GM_getResourceURL('logo'); var floatBoxHtml = '<div style="position:fixed;z-index:1076134;cursor:pointer;top:68px;left:0px;">' + '<div id="access-helper-wrap" style="width:136px;height:28px;line-height:28px;text-align:center;font-size:12px;color:#fff;background-color:#7C3AED;border:1px solid #7C3AED;border-left:none;border-top-right-radius:5px;border-bottom-right-radius:5px;">' + '<img src="' + logoImgUrl + '" style="width:20px;height:20px;position:relative;top:5px;" /> Twitch访问助手' + '</div>' + '<div id="access-helper-url-wrap" style="font-size:12px;padding:6px 4px;">' + '<a href="http://letsmain.com/twitch-access-master?utm_source=greasyfork-recommend" target="_blank" style="color:#3b8cff;text-decoration:none">http://letsmain.com/twitch-access-master</a>' + '</div>' + '</div>'; $('body').append(floatBoxHtml); var defaultVipUrl = 'http://letsmain.com/twitch-access-master?utm_source=greasyfork-recommend&invitation-code=#'; $('body').on('click', '#access-helper-wrap', function() { defaultVipUrl = defaultVipUrl.replace(/#/g, encodeURIComponent(currentUrl)); window.open(defaultVipUrl, '_blank'); }); }; resourceAnalysis.init = function() { resourceAnalysis.addHtml(); }; resourceAnalysis.init(); const options = { hookEvents: ["contextmenu", "select", "selectstart", "copy", "cut", "dragstart"], unhookEvents: ["mousedown", "mouseup", "keydown", "keyup"], doms: true, hookAddEventListener: true, hookPreventDefault: true, addCss: true, iframeSrc: "about:blank", }; const shouldNotHook = (event) => !!event.closest("form"); const clearEvents = () => { const targets = [ document, document.body, ...document.getElementsByTagName("div"), ]; const iframe = document.querySelector(`iframe[src="${options.iframeSrc}"]`); if ( iframe && iframe.clientWidth > 99 && iframe.clientHeight > 11 ) { targets.push( iframe.contentWindow.document, iframe.contentWindow.document.body ); } for (const target of targets) { if (!target) continue; for (const eventType of options.hookEvents.concat(options.unhookEvents)) { const prop = "on" + eventType; target[prop] = null; } } }; const hookEvents = (originalAddEventListener) => { const newAddEventListener = function (type, listener, options) { const useCapture = typeof options === "boolean" ? options : options && options.capture; if (!options.hookEvents.includes(type)) { originalAddEventListener.call(this, type, listener, useCapture); } else { originalAddEventListener.call(this, type, (e) => { if (shouldNotHook(e) || !options.hookEvents.includes(e.type)) { e.preventDefault(); } else { listener(e); } }, useCapture); } }; EventTarget.prototype.addEventListener = newAddEventListener; document.addEventListener = newAddEventListener; }; const hookPreventDefault = (originalPreventDefault, eventNames) => { Event.prototype.preventDefault = function () { if (shouldNotHook(this) || !eventNames.includes(this.type)) { originalPreventDefault.call(this); } }; }; const addCss = () => { GM_addStyle(` html, * { -webkit-user-select: text !important; -moz-user-select: text !important; user-select: text !important; } ::-moz-selection { color: #FFF!important; background: #3399FF!important; } ::selection { color: #FFF!important; background: #3399FF!important; } `); }; const init = () => { if (options.doms) { setInterval(clearEvents, 9000); setTimeout(clearEvents, 1000); window.addEventListener("load", clearEvents, true); } if (options.hookAddEventListener) { hookEvents(EventTarget.prototype.addEventListener); } if (options.hookPreventDefault) { hookPreventDefault( Event.prototype.preventDefault, options.hookEvents.concat(options.unhookEvents) ); } if (options.addCss) { addCss(); } }; init(); })();