Greasy Fork

Greasy Fork is available in English.

公众号阅读恢复音视频播放、二维码等

可以恢复因地址错误无法播放的音频、可以恢复因地址错误无法播放的视频(目前仅限微信公众号源)

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name         公众号阅读恢复音视频播放、二维码等
// @namespace    http://tampermonkey.net/
// @version      0.3
// @description  可以恢复因地址错误无法播放的音频、可以恢复因地址错误无法播放的视频(目前仅限微信公众号源)
// @author       kbtx
// @match        https://kbtxwer.gitee.io/blog*.html
// @match        https://kbtxwer.github.io/blog*.html
// @icon         https://www.google.com/s2/favicons?domain=github.io
// @grant        none
// @license     MIT
// ==/UserScript==

(function() {
    'use strict';

    // Your code here...
    window.onload = function(){
        //获取原文链接
        let og_url = document.head.querySelector("meta[property~='og:url']").content;
        //点击标题可以阅读原文
        document.querySelector("#activity-name").onclick = function(e){
            window.open(og_url)
        }
        //将所有音频替换为直接加载
        let audioTags = document.getElementsByTagName("mpvoice")||[]
        audioTags.length && [...audioTags].forEach((item,index)=>{
            let src = 'https://res.wx.qq.com/voice/getvoice?mediaid=' + item.getAttribute('voice_encode_fileid')
            let audioTag = document.createElement('audio')
            audioTag.setAttribute("controls","controls")
            audioTag.setAttribute("src",src)
            audioTag.setAttribute("title",item.getAttribute('name'))
            item.parentNode.append(audioTag)
        })

        //将所有的微信公众号上传视频替换为直接加载
        let videoFrames = document.getElementsByClassName('video_iframe')||[]
        videoFrames.length && [...videoFrames].forEach((item,index)=>{
            let data_cover = unescape(item.getAttribute("data-cover"))
            console.log(data_cover)
            let src = item.src
            let ahref = document.createElement('a')
            ahref.setAttribute("href",src)
            let imgTag = document.createElement('img')
            imgTag.setAttribute("src",data_cover)
            let promotTag = document.createElement('p')
            promotTag.innerText = '增强插件提示:点击下图可观看视频'
            ahref.append(promotTag)
            ahref.append(imgTag)
            ahref.setAttribute('target','_blank')//target="_blank"
            item.parentNode.append(ahref)
        })

        //将所有的腾讯视频上传视频替换为直接加载
        setTimeout(()=>{
            //移除原版加载错误的提示
            let audioTags = document.getElementsByClassName("js_audio_frame db pages_reset audio_area")||[]
            while(audioTags.length > 0){
                audioTags[0].remove()
                console.log('remove')
            }
            //移除原版视频加载错误的提示
            let videoTags = document.getElementsByClassName("js_img_loading db")||[]
            while(videoTags.length > 0){
                videoTags[0].remove()
                console.log('remove')
            }
            //重新显示出公众号二维码
            let js_pc_qr_code_img = document.querySelector("#js_pc_qr_code_img")
            js_pc_qr_code_img.setAttribute("src",'https://mp.weixin.qq.com' + js_pc_qr_code_img.getAttribute('src'))
        },2000)
    }
})();