学人VIP

解锁VIP

// ==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: `<div style="text-align: left;">当前版本:V${GM_info.script.version}<br>
最新特性:<br>
- 添加版本特性弹窗<br>
- 添加 Ctrl + P 保存 PDF 或 打印 的适配<br>
<hr>
(更多信息,请前往 <a href="https://greasyfork.org/zh-CN/scripts/441874" style="text-decoration: underline;color: #6495ed;">脚本网站</a> 查看)</div>`,
            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:`<br><p>不支持hls播放器</p><br>`}),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+=`<figure><img style="width:100%" src="https://d2du2xc4tgl2mb.cloudfront.net/article_images/${articleID}/${encodeURIComponent(i.image_path)}" alt="" class="img-responsive"><figcaption>&ZeroWidthSpace;</figcaption></figure>`;
                                    break;
                                }
                            }
                            break;
                        case "paragraph":
                            if(!new URL(location.href).searchParams.get('dualLang')){
                                for (const i of a.data) {
                                    if (i.lang === lang) {
                                        MyDom+=`<p class="${className}">${i.text}</p>`;
                                        break;
                                    }
                                }
                            }else{
                                // 双语
                                ['en_GB','zh_CN'].map(x=>{
                                    MyDom+=`<p class="${className}">${a.data.find(a=>a.lang===x).text}</p>`;
                                });
                            }
                            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($('<div id="TPlay" style="position:fixed;left: 10px;right: 10px;bottom:3%;height: 54px;box-shadow: #00000066 1px 2px 10px 2px;border-radius: 90px;"><div class="progress">0%</div><audio id="TPlayer" controls style="width: 100%;display: none;"></audio></div>'));
                        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;
                };
            }
        });
    }
})();