Greasy Fork is available in English.
可以恢复因地址错误无法播放的音频、可以恢复因地址错误无法播放的视频(目前仅限微信公众号源)
// ==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)
}
})();