(Ver 0.5)油猴脚本:微信推送浏览功能拓展
Latest update date:2021/05/18 Ver0.5
Ver0.5 更新说明:
功能特性:
性能优化:
用对象变量统一管理功能开闭的逻辑,所有功能的启用与关闭都可以自行配置
增加checkout()函数,脚本运行主要功能前首先进行逻辑判断,减小不必要的性能开销
引入jQuery库,相比原生DOM操作代码量更小,代码可读性更高
适配新标准,停用var声明变量,改用ES6新增的let与const
主要功能:
- 一键跳转微信推送封面图链接
- 在推送正文头部显示推送摘要全文,一键文本复制文章摘要功能
- 设置默认时间显示格式
- 所有功能可以配置是否启用
使用方法:
1.安装 Tampermonkey 浏览器插件(脚本管理器)
到浏览器拓展商城搜索Tampermonkey
,安装拓展。
或者访问Tampermonkey 官网下载安装自己浏览器对应的拓展版本。
2.安装脚本
访问Greasyfork,安装脚本到脚本管理器中。
3.使用脚本
确保脚本在脚本管理器中处于启用状态,在浏览器中随意打开一篇推送,例:春节期间小程序及小游戏审核调整通知。注:文章链接须以mp.weixin.qq.com开头
使用脚本前:

使用脚本后(现有功能全开启):

在文章正文头部,显示了文章摘要全文,可以选择复制。
点击公众号蓝字,点击弹出浮窗中的二维码图片,可以跳转到文章封面图链接,同时隐藏了右侧悬浮的引导关注栏。

如图为单击“封面链接”后跳转的网页页面
所有功能可以在修改是否启用,后期计划中将为脚本配置可视化设置界面,支持自定义文章显示样式(true
为启用,false
为禁用)

后期计划
- 将全部原生DOM操作替换为jQuery操作
- 优化变量声明过程,让代码更简洁
- 增加设置窗口,可以设置脚本默认功能,如日期显示、不同形式的封面图
- 增加更多的可选样式(自定义样式)
- 搭建网站,将功能迁移至公共网站,以美化输入框方式输入链接,提取封面图、摘要等内容,同时适配手机端和电脑端。
- 欢迎持续关注!
相关链接:
CSDN:用.exe可执行程序获取微信推送封面图
*CSDN:*13行MATLAB代码实现网络爬虫 爬取NASA画廊星图
源代码(JavaScript):
// ==UserScript==
// @name 微信推送浏览功能拓展
// @namespace https://blog.csdn.net/Huuc6
// @version 0.5
// @description 更佳的浏览体验,更快获得微信推送封面图与文章摘要以及更多功能
// @author huuc
// @match *://mp.weixin.qq.com/s*
// @icon https://gitee.com/ziuc/utool-filebed/raw/master/20210514-231824-0795.png
// @require http://libs.baidu.com/jquery/2.0.0/jquery.min.js
// @require https://cdn.jsdelivr.net/npm/[email protected]/dist/clipboard.min.js
// @license GPL-2.0
//New Features
/*
* 功能特性:
* 增加单击文本复制文章摘要功能
* 增加设置默认时间显示格式
* 增加设置引导关注栏的开启或关闭
* 移除了“封面链接”按钮,获取封面链接可以点击公众号蓝字后点击内部的二维码获取
* 性能优化:
* 用对象变量统一管理功能开闭的逻辑,所有功能的启用与关闭都可以自行配置
* 增加checkout()函数,脚本运行主要功能前首先进行逻辑判断,减小不必要的性能开销
* 引入jQuery库,相比原生DOM操作代码量更小,代码可读性更高
* 适配新标准,停用var声明变量,改用ES6新增的let与const
* */
// ==/UserScript==
(function() {
'use strict';
let state=
{
url_state : true, // 是否启用点击二维码跳转到封面图链接功能
recommend_state : true, // 是否显示引导关注栏
datetype_state : true, // 是否启用修改默认时间显示模式功能
summary_state : true // 是否启用显示摘要功能
}
if(checkout(state)===true)
{
const data = document.documentElement.outerHTML;
//点击二维码跳转到封面图链接
if(state.url_state===true)
{
let linkReg_1 = /msg_cdn_url = "(.*)"/ig;
let url = linkReg_1.exec(data);
let trueurl = url[1];
console.log(trueurl);
$('#js_profile_qrcode_img').click(function(){window.location.href=trueurl});
}
// 向网页中添加文章摘要并加入复制到剪切板功能
if(state.summary_state===true)
{
let meta = document.getElementsByName("description");
let contents = meta[0].content;
let d2 = document.getElementById('meta_content');
let clipboard = new ClipboardJS('.btn'); // 要使用 clipboard.js 需要声明一个clipboard实例
d2.insertAdjacentHTML('afterend','<div id="summary" class="btn" data-clipboard-text="#" style="color: #B3B3B3FF; border-radius: 5px"></div><br/>');
$('#summary').html("文章摘要:"+contents);
$('#summary').attr("data-clipboard-text",contents);
}
//修改时间格式
if(state.datetype_state===true)
{
let linkReg_2 = /",i="(\d{4}-\d{1,2}-\d{1,2})";/g;
let date = linkReg_2.exec(data);
$('#publish_time').text(date[1]);
}
//隐藏引导关注栏
if (state.recommend_state!==true)
{
$('.qr_code_pc').hide();
}
}
else
{
console.log('WeChat article browsing function expansion scripts is disabled.');
}
// checkout()函数
function checkout(state)
{
let states = Object.keys(state);
let num = states.length;
let j=0;
for (let i = 0; i < num-1; i++) // num:状态判断个数
{
if(state[states[i]]===false)
{
j++;
}
}
return j !== num - 1;
}
})();
//todo:
/*
* 将全部原生jsDOM操作替换为jQuery操作
* 优化变量声明过程,让代码更简洁
* 增加设置窗口,可以设置脚本默认功能,如日期显示、不同形式的封面图
* 增加更多的可选样式(自定义样式)
*/
作者才学尚浅,如使用中遇到问题,欢迎留言评论提供反馈!