// ==UserScript==
// @name zherop小工具
// @namespace http://tampermonkey.net/
// @version 1.2
// @description 一键无图、隐藏图片、查看源代码
// @author zherop@163.com
// @match *://*/*
// @connect static.61read.com
// @connect basic.10jqka.com.cn
// @require https://cdn.staticfile.org/jquery/3.3.1/jquery.min.js
// @grant unsafeWindow
// @grant GM_xmlhttpRequest
// @grant GM_download
// @grant GM_openInTab
// @license AGPL License
// @downloadURL none
// ==/UserScript==
(function() {
'use strict';
// 定义
var menus = [
{"code":"noPic","name":"一键无图","event":"noPic"},
{"code":"hidePic","name":"隐藏图片","event":"hidePic"},
{"code":"viewSource","name":"查看源代码","event":"viewSource"},
{"code":"downloadPng","name":"下载图片","event":"downloadPng","domain":"http://static.61read.com/"},
{"code":"openIframe","name":"访问iframe","event":"openIframe"},
{"code":"checkTargetInIwencai","name":"标的筛选","event":"checkTargetInIwencai","domain":"https?://www.iwencai.com/"}
]
// 菜单样式
function menuStyle() {
return `
`
}
// 创建菜单DOM
function createMenuDom() {
var html = '
'
return html;
}
// 菜单事件
// 一键无图
function noPic(){
$("img").remove();
$("svg").remove();
}
// 隐藏图片
function hidePic(){
$("img").hide();
$("svg").hide();
}
// 查看源代码
function viewSource() {
GM_openInTab('view-source:' + window.location.href)
}
// 下载图片
function downloadPng() {
var currentHref = window.location.href
if(currentHref.startsWith('http://static.61read.com/')) {
var baseURL = currentHref.substr(0,currentHref.lastIndexOf('/'))
var xmlFile = unsafeWindow.xmlFile
var pageFile = unsafeWindow.pageFile
GM_xmlhttpRequest({
method: "GET",
url: baseURL + '/'+ pageFile + xmlFile,
headers: {
"Content-Type": "application/xml"
},
onload: function(response) {
var responseXML = response.responseXML
var items = responseXML.getElementsByTagName('item')
for(var i=0;i 0) {
name = path.substring(path.lastIndexOf('/') + 1)
}
download(imageURL,name);
}
}
});
} else {
}
}
function download(filePath,name){
fetch(filePath).then(res => res.blob()).then(blob => {
const a = document.createElement('a');
document.body.appendChild(a)
a.style.display = 'none'
// 使用获取到的blob对象创建的url
const url = window.URL.createObjectURL(blob);
a.href = url;
// 指定下载的文件名
a.download = name;
a.click();
document.body.removeChild(a)
// 移除blob对象的url
window.URL.revokeObjectURL(url);
});
}
function download2(url,name) {
GM_download({
url: url,
onerror: function (error) {
console.log(error)
},
onprogress: (pro) => {
console.log(pro.loaded) //文件加载量
console.log(pro.totalSize) //文件总大小
},
ontimeout: () => {
//如果此下载由于超时而失败,则要执行的回调
},
onload: () => {
//如果此下载完成,则要执行的回调
}
})
}
// 打开iframe
function openIframe() {
if(document.getElementsByTagName("iframe").length > 0){
window.open(document.getElementsByTagName("iframe")[0].src)
} else {
console.log('不存在iframe')
}
}
function copyText(text) {
if($('#zp-copy').length <= 0) {
$("body").append('')
}
$('#zp-copy').text(text).show();
var ele = document.getElementById("zp-copy");
ele.select();
document.execCommand('copy', false, null);
$('#zp-copy').hide();
alert('已复制到剪切板!');
}
function getRequest(url,mimeType) {
return new Promise((resolve, reject) => {
GM_xmlhttpRequest({
method: "GET",
url: url,
overrideMimeType: mimeType ? mimeType:"text/html; charset=utf-8",
onload: function(response) {
if (response.status === 200) {
resolve(response.responseText);
} else {
reject("Failed to fetch HTML page.");
}
},
onerror: function(error) {
reject(error);
}
});
});
}
async function checkTargetInIwencai() {
console.log('checkTarget');
if(window.location.href.startsWith("http://www.iwencai.com/")) {
let trs = $(".iwc-table-scroll").find("tr");
let data = []
for(let i=0;i= 20 && rt >= 20) {
selected = true;
} else {
selected = false;
}
// 连续5年的平均净利润现金含量高于100%的
let ct = (parseFloat(obj.c1) + parseFloat(obj.c2) + parseFloat(obj.c3) + parseFloat(obj.c4) + parseFloat(obj.c5))/5;
obj.ct = ct;
if(ct >= 100) {
selected = selected && true;
} else {
selected = selected && false;
}
// 连续5年的毛利率中,平均值并且最近1年的数值高于40%的
let mf = parseFloat(obj.m1);
let mt = (parseFloat(obj.m1) + parseFloat(obj.m2) + parseFloat(obj.m3) + parseFloat(obj.m4) + parseFloat(obj.m5))/5;
obj.mt = mt;
if(mt >= 40 && mf >= 40) {
selected = selected && true;
} else {
selected = selected && false;
}
// 连续5年的资产负债率中,平均值且最近1年的数值小于60%
if(selected) {
// 获取资产负债率
let htmlContent = await getRequest("http://basic.10jqka.com.cn/" + obj.code + "/finance.html","text/html; charset=gbk");
let financeData = parseFinance(htmlContent);
obj.financeData = financeData;
for(let i=0;i 60) {
selected = selected && false;
break;
}
}
}
// 连续5年的派息比率中,每年都大于25%
if(selected){
// 获取派息比率数据
let htmlContent = await getRequest("http://basic.10jqka.com.cn/" + obj.code + "/bonus.html","text/html; charset=gbk");
let bonusData = parseBonus(htmlContent);
obj.bonusData = bonusData;
for(let i=0;i item.code===opType)
if(currentMenu) {
eval(currentMenu.event + "()")
}
})
// 处理网站
handleSite();
})
})();