// ==UserScript== // @name 学人VIP // @namespace studyVIP.taozhiyu.gitee.io // @version 0.6 // @description 解锁VIP // @author 涛之雨 // @match *://www.businessreview.global/* // @match *://*.economist.com/* // @icon data:image/png;base64,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 // @require https://cdn.bootcdn.net/ajax/libs/hls.js/1.0.8-0.canary.7807/hls.min.js // @require https://cdn.bootcdn.net/ajax/libs/blueimp-md5/2.19.0/js/md5.min.js // @resource jq https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.slim.min.js // @require https://cdn.jsdelivr.net/npm/@zip.js/zip.js@2.6.60/dist/zip-full.min.js // @require https://greasyfork.org/scripts/455943-ajaxhooker/code/ajaxHooker.js // @require https://cdn.jsdelivr.net/npm/sweetalert2@11 // @antifeature tracking ============================================>>>说明:我们仅会在经济学人文章阅读页面收集您使用本插件的情况,以帮助作者了解插件的用户数量。这个操作仅会收集您的IP地址信息,不包含您鼠标、键盘点击在内的所有操作,没有任何安全风险,不会产生性能损耗。为了保护您的知情权以及使用体验,特告知于您。本插件系开源脚本,所有代码均可查看源码,请您放心安装。 <<<============================================ // @grant GM_getResourceText // @grant GM_addStyle // @grant GM_getValue // @grant GM_setValue // @grant window.onurlchange // @run-at document-start // @license GPL3.0 // @homepage https://greasyfork.org/zh-CN/scripts/441874 // ==/UserScript== /*global Hls zip md5 $ ajaxHooker Swal*/ /* jshint esversion: 11 */ ajaxHooker.filter([ {url: "/api/bulk-subscriber"}, ]); (function glob() { 'use strict'; if(!document.head)return setTimeout(glob,50); const script = document.createElement("script"); script.type = "text/javascript"; script.src = "//js.users.51.la/21234891.js"; document.head.appendChild(script); (()=>{ let i=0,x=setInterval(()=>{ [...document.querySelectorAll("link[rel*='icon']")].map(a=>a.remove()); const link=document.createElement('link'); link.rel = 'icon'; link.href = GM_info.script.icon; document.head.appendChild(link); if(i++>5)clearInterval(x); },500); })(); const addElement=(tag,args)=>{ const dom=document.createElement(tag); for(const arg in args){ dom[arg]=args[arg]; } document.head.append(dom); }; addElement('script', { textContent:GM_getResourceText("jq") }); const V=GM_getValue('version')||""; if(V!==GM_info.script.version){ Swal.fire({ title: '[学人VIP] 已更新!', html: `
当前版本:V${GM_info.script.version}
最新特性:
- 添加版本特性弹窗
- 添加 Ctrl + P 保存 PDF 或 打印 的适配

(更多信息,请前往 脚本网站 查看)
`, icon: 'success', confirmButtonText: '好诶!' }).then((result) => { GM_setValue('version',GM_info.script.version); }); } if(location.href.includes("businessreview.global")){ const main=(url)=>{ const path = location.pathname.replace(/-/g,"_").split("/"), lang = ['zh_CN','en_GB','zh_TW'].includes(path[1])?path[1]:'en_GB', articleID=path.pop(), D=GM_getValue('dataList')||{}; if(D[articleID]&&Object.keys(D[articleID])) setTimeout(()=>doInject(D[articleID]),500); else { fetch('https://api.hummingbird.businessreview.global/api/article?id=' + articleID).then(a=>a.json()).then(tao=>{ const D=GM_getValue('dataList')||{}; D[articleID]=tao; GM_setValue('dataList',D); doInject(tao); }); } function doInject(tao){ if(tao.has_video){ if(document.querySelector('video'))return; const Dom=document.querySelector('.ds-banner-alert--warning'); const {data}=tao.body.content.find(a=>a.type==="video"); const url=data[0].url; if(Hls.isSupported()) { const vid=btoa((Math.random()+"").slice(2)).substr(0,10); document.querySelectorAll('figure[class*=leadimage]').forEach(a=>a.remove()); Dom.parentElement.insertBefore(Object.assign(document.createElement('video'),{ id:`v_${vid}`, controls:true, style:'width:100%', poster:`https://d2du2xc4tgl2mb.cloudfront.net/article_images/${articleID}/${encodeURIComponent(tao.body.content.find(a=>a.type==="image").data[0].image_path)}` }),Dom); const hls = new Hls(); hls.loadSource(decodeURIComponent(url).replace('businessreviewglobal-cdn.com','d2du2xc4tgl2mb.cloudfront.net')); hls.attachMedia(document.getElementById(`v_${vid}`)); }else Dom.parentElement.insertBefore(Object.assign(document.createElement('div'),{innerHTML:`

不支持hls播放器


`}),Dom); Dom.querySelector("strong").innerText=articleID==="en_GB"?"Ok, fine. Now, it works :)":"好吧好吧,现在支持在线播放了:)"; Dom.className=Dom.className.replace('warning','success'); return; } const Dom=document.querySelector("div[class^=article-content_wrapper]"); if(!Dom||!Dom.childNodes.length)return setTimeout(()=>doInject(tao),500); const {className}=Dom.childNodes[0]; let MyDom=""; tao.body.content.map((a,index)=>{ switch (a.type) { case "image": if(index===0)return; for (const i of a.data) { if (i.lang === lang) { MyDom+=`
`; break; } } break; case "paragraph": if(!new URL(location.href).searchParams.get('dualLang')){ for (const i of a.data) { if (i.lang === lang) { MyDom+=`

${i.text}

`; break; } } }else{ // 双语 ['en_GB','zh_CN'].map(x=>{ MyDom+=`

${a.data.find(a=>a.lang===x).text}

`; }); } break; case "subtitle": case "video": break; default: console.log("未识别的类型",a); } }); Dom.innerHTML=MyDom; const verifyZipPassword = async (file, password) => { let reader, mp3blob = ""; try { reader = new zip.ZipReader(new zip.BlobReader(file), { password }); const entries = await reader.getEntries(); try { const audioBlob = await entries[0].getData(new zip.BlobWriter()); const newreader = new FileReader(); newreader.addEventListener("loadend", function(){ const newAudioBlob=new Blob([newreader.result],{type: 'mp3'}); mp3blob = URL.createObjectURL(audioBlob); $(".progress").hide(); $("#TPlayer").show(); document.querySelector('#TPlayer').src=mp3blob; document.querySelector('#TPlayer').setAttribute('aid',articleID); }); newreader.readAsArrayBuffer(audioBlob); } catch (error) { return { state: false, error }; } } finally { if(reader&&reader.close)await reader.close(); } return {state: true,url:mp3blob}; }; const requestmp3=async (mp3zipurl)=>{ try{ const rep=await fetch(mp3zipurl).catch(a=>console.log('无音频')); if (!rep||rep.status!==200) { return; } $('body').append($('
0%
')); let size = 0; const body = rep.body, len = rep.headers.get('Content-Length'); const reader = body.getReader(); const steam=await new ReadableStream({ start(controller) { return pump(); function pump() { return reader.read().then(res => { const { done, value } = res; if (done) { controller.close(); $(".progress").text('100%'); return; } size += value.length || 0; const rate = (100 * size / Number(len)).toFixed(2) + "%"; $(".progress").width(rate).text(rate); controller.enqueue(value); return pump(); }); } } }); const blob=await (new Response(steam)), a = await blob.blob(); verifyZipPassword(a, md5('2q09kj876$A&21786351+_))l;k98zTRWE%$#*&^'+mp3zipurl.split("/").pop())) .then(a=>{ URL.revokeObjectURL(a); }) .catch(err => console.error(err)); }catch(e){ console.log(e); } }; if(!document.querySelector('#TPlayer')||document.querySelector('#TPlayer').getAttribute('aid')!==articleID) requestmp3("https://d2du2xc4tgl2mb.cloudfront.net/"+tao.publication_date.substr(0,7)+'/audio/'+articleID+'_mp3.zip'); } }; GM_addStyle(` div[class*=authwall], div[class*=mobilelink], p[class^=article-content_linear__text]{ display:none!important; } .progress { background: -webkit-repeating-linear-gradient(135deg, #5FB878, #5FB878 15px, #5FB87880 15px, #5FB87880 38px); background: -moz-repeating-linear-gradient(135deg, #5FB878, #5FB878 15px, #5FB87880 15px, #5FB87880 38px); background: -o-repeating-linear-gradient(135deg, #5FB878, #5FB878 15px, #5FB87880 15px, #5FB87880 38px); background: repeating-linear-gradient(-45deg, #5FB878, #5FB878 15px, #5FB87880 15px, #5FB87880 38px); height: 54px; display: -webkit-box; display: -webkit-flex; display: -moz-box; display: flex; -webkit-box-align: center; -webkit-align-items: center; -moz-box-align: center; align-items: center; -webkit-box-pack: center; -webkit-justify-content: center; -moz-box-pack: center; justify-content: center; -webkit-border-radius: 90px; -moz-border-radius: 90px; border-radius: 90px; min-width: 10%; -webkit-animation: bg-scroll 500ms infinite linear; -moz-animation: bg-scroll 500ms infinite linear; -o-animation: bg-scroll 500ms infinite linear; animation: bg-scroll 500ms infinite linear; font-size: 40px; font-weight: bold; } @-webkit-keyframes bg-scroll { from { background-position: 0 0; } to { background-position: 0px 54px; } } @-moz-keyframes bg-scroll { from { background-position: 0 0; } to { background-position: 0px 54px; } } @-o-keyframes bg-scroll { from { background-position: 0 0; } to { background-position: 0px 54px; } } @keyframes bg-scroll { from { background-position: 0 0; } to { background-position: 0px 54px; } } @media print{ div[class^="header_header__langswitch__"],footer,#TPlay { display:none } header[class*="header_header__"]::before{ content: "本PDF文档由涛之雨\a [学人VIP]脚本生成"; position: absolute; white-space: pre; right: 25px; top: 30px; } } `); main(location.href); if (window.onurlchange === null) { window.addEventListener('urlchange', ({url}) => { if(document.querySelector('#TPlayer')&&( document.querySelector('#TPlayer').getAttribute('aid')!==location.pathname.replace(/-/g,"_").split("/").pop()|| location.pathname==="/") ) document.querySelector('#TPlayer').parentElement.remove(); main(location.href); }); } const checker=setInterval(()=>{ // 这是什么神仙bug。。。 if(document.body.innerText.includes('An error 404 occurred on server')){ clearInterval(checker); location.reload(); } },100); }else if(location.href.includes("economist.com")){ ajaxHooker.hook(request => { if (request.url==='/api/bulk-subscriber') { request.response = res => { res.json.isBulkSubscriber=true; }; } }); } })();