您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Add some functions to 18av
// ==UserScript== // @name 18AV Tweaks // @grant GM_xmlhttpRequest // @grant GM_setClipboard // @include http://18av.mm-cg.com/* // @version 0.0.1.20181014041815 // @namespace https://greasyfork.org/users/2233 // @description Add some functions to 18av // ==/UserScript== var wnd = window var doc = wnd.document var loc = wnd.location var href = loc.href var $ = function(e, css) { if(!css) { css=e; e=doc }; return e.querySelector(css) } var $$ = function(e, css) { if(!css) { css=e; e=doc }; return e.querySelectorAll(css) } if(/\/(18av|av_Broadcast)\//i.test(href)) { var v var v_css = [ 'iframe[src^="http://www.youjizz.com/videos/embed/"]', 'iframe[src^="https://www.youjizz.com/videos/embed/"]', 'iframe[src^="http://www.jizzhut.com/videos/embed/"]', 'iframe[src^="https://www.jizzhut.com/videos/embed/"]', 'iframe[src^="http://vshare.io/v/"]', 'iframe[src^="https://vshare.io/v/"]', 'iframe[src^="http://vidto.me/embed-"]', 'iframe[src^="https://vidto.me/embed-"]', 'iframe[src^="http://www.flashx.tv/embed-"]', 'iframe[src^="https://www.flashx.tv/embed-"]', ] for(var i=0, len=v_css.length; i<len; i++) { v = $$(v_css[i]) if(v.length != 0) { break } } if(v.length == 0) { alert("Error: Can't find embedded videos.") } for(var i=0, len=v.length; i<len; i++) { (function(i){ v[i].style.display = 'none' // speed up the page load var btn = doc.createElement('button') var url = v[i].src var txt = doc.createTextNode(url) btn.appendChild(txt) $('.cs_mvwidth').appendChild(doc.createElement('br')) $('.cs_mvwidth').appendChild(btn) btn.addEventListener('click', function() { if(/(youjizz|jizzhut)\.com/.test(url)) { url = url } else if(/vshare\.io/.test(url)) { url = url } else if(/vidto\.me/.test(url)) { url = url.replace(/\/embed-/, '/').replace(/-.*\./, '.') } else if(/flashx\.tv/.test(url)) { url = url.replace(/\/embed-/, '/').replace(/-.*\./, '.') } else { url = url } GM_xmlhttpRequest({ method: 'GET', url: url, overrideMimeType: 'text/xml', headers: { 'Accept': 'text/xml', 'Content-Type': 'text/xml', }, synchronous: false, onload: function(res) { //GM_setClipboard(res.responseText) //alert(res.responseText) var vlnk var div = doc.createElement('div') div.innerHTML = res.responseText //div = res.responseXML //div = new DOMParser().parseFromString(res.responseText, 'text/xml') if(/(youjizz|jizzhut)\.com/.test(url)) { try { vlnk = res.responseText.match(/"filename":"(.*?)"/)[1].replace(/\\/g, '').replace(/^\/\//, 'https://') //vlnk = 'https:' + div.encodings[0].filename //vlnk = div.querySelector('video[id^="yj-video"]').src } catch(e) { alert(e) return } //try{ vlnk = div.querySelector('#yj-video').querySelector('source').src } //catch(e) { //alert(e) //try { //vlnk = res.responseText.match(/newLink\.setAttribute\(['"]href['"],['"]([^'"]*)['"]\)/)[1] //} //catch(e2) { //alert(e2) //return //} //} //if(/^\/\//i.test(vlnk)) { vlnk = vlnk.replace(/^\/\//, 'https://') } } else if(/vshare\.io/.test(url)) { try{ vlnk = div.querySelector('#my-video').querySelector('source').src } catch(e) { alert(e) try { vlnk = res.responseText.match(/<source +src=['"]([^'"]*?)['"]/)[1] } catch(e2) { alert(e2) alert('Copy-n-Paste the URL to watch the video:\n' + url) } } if(/^\/\//i.test(vlnk)) { vlnk = vlnk.replace(/^\/\//, 'https://') } } else if(/vidto\.me/.test(url)) { alert('Error: Unsupported site.') throw 'exit' } else if(/flashx\.tv/.test(url)) { alert('Error: Unsupported site.') throw 'exit' } var vid = 'download_link_' + (i+1) GM_setClipboard(vlnk) if(!$('#'+vid)) { var a = doc.createElement('a') a.id = vid a.download = a.text = $('#main h1').textContent.match(/影片名稱:(.*)/)[1] + '_' + (i+1) a.href = vlnk btn.appendChild(doc.createElement('br')) btn.appendChild(a) } var m3u = '#EXTM3U\n' m3u += vlnk + '\n' if(typeof InstallTrigger !== 'undefined') { // is Firefox loc.href = 'data:audio/mpegurl;base64,' + btoa(m3u) } else { loc.href = 'data:application/x-mpegurl;base64,' + btoa(m3u) } }, }) }) })(i) } } var zap = function(e, css, hide) { if(!css) { css=e; e=doc } var a = e.querySelectorAll(css) if(a) { if(hide) { for(var i=0, len=a.length; i<len; i++) { a[i].style.display = 'none' } } else { for(var i=0, len=a.length; i<len; i++) { a[i].parentNode.removeChild(a[i]) } } } } zap('.TW_UTtoy') zap('a[href^="http://goo.gl/"]') zap('img[src*="blogspot.com"]') zap('#ArticlesEx_box') zap('.ut_ad_box') zap('#main_mv') zap(doc, 'iframe', true)