// ==UserScript==
// @name 屏蔽前程无忧、智联招聘的虚假招聘广告
// @version 1.2
// @namespace top.wwjay.js
// @description 内置武汉地区的培训机构公司名称,可以根据需要点击X来屏蔽,
// 如需解除自定义屏蔽的公司请清除浏览器全部缓存,
// 页面改变了下一页的加载方式为滚动到底部,
// 默认屏蔽异地招聘的信息
// @author wwjay
// @require https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js
// @match http://search.51job.com/*
// @match http://sou.zhaopin.com/*
// ==/UserScript==
let blacklist = ['软清科技', '东软软件', '东软睿道', '智递科技', '瑞鑫宝典', '瑞鑫祥云', '科瑞亚', '华信智原',
'新东网科技', '创优智才', '博创华宇', '夕夕之由', '优才创智', '冲锋互联网', '奋斗者', '伟创聚赢', '美软动力',
'软帝信息', '新华电脑', '硕彦博创', '卓研云软件', '龙才企业', '千途创造', '杭州东渡', '杰讯智诚', '智动天下',
'武汉拓福', '欣落雨网络科技', '育豪体育', '中软博创', '时空行者', '百科杰', '创薪梦想', '汇众益智', '极客营信息',
'源码时代', '瀚途信息', '翰竺科技', '华雪锋软件', '巴迅科技', '知行汇聚', '创智聚合', '恒博软件', '瑞吉诺信息',
'创搜信息', '万度空间', '海文赢通信', '创码之家', '德善通科技', '海棠仙子', '艺汇创意', '尚云客网络', '国鑫科技',
'青岛福音网络', '晟乐云科技', '慧炎时代', '惟特信息', '驿动兄弟', '保尔子旭', '智一科技', '亿钜鑫网络', '一代人教育',
'千硕教育', '软谋教育', '达内', '联合创想', '瑞才教育', '北大青鸟', '软帝联合', '极点创新软件', '上海七圣网络',
'万维软盟', '华旺达信息', '高鸿兴科', '海度网络', '万维速科', '美约科技', '云客易在线', '品创众智',
'知行国际经济', '学盟英才', '学思成', '华远时代', '广东会圆宝', '晋佑科技', '华夏天网', '晶美莱特', '麦菲尔膜',
'海辰科技', '东渡科技', '华育嗨搜', '樱雪科技', '蓝色曙光', '北京邮电大学“互联网+”人才培养基地', '众智动力',
'湖北省软帝职业', '溢达科技', '阿甲科技', '早稻田鹏翔', '云唯+', '旅烨网络', '软通动力信息技术', '升技使能教育',
'美言信息', '沃云恒飞', '陕西航新电子', '易通信博信息', '文武远卓文化', '川友网络技术', '中青中关村软件园人才基地',
'英特威尔', '荣新广育科技', '易思哲科技', '新时代网络', '大福融通', '平乐云网络', '宝赢网络', '素峰炉业', '颢天鸿泰',
'华奥星空', '智游联动', '优伯立信', '零壹众创', '才信优达', '壹方凌网络', '楚佑科技', '中科腾辉', '羽皓信息', '斯密尔德',
'羽皓信息', '广恒丰盈', '贝笃网络', '东仁汇义'];
blacklist = blacklist.concat(localStorage.localBl ? JSON.parse(localStorage.localBl) : []);
function rmBl($html) {
let $list = $html.find('#resultList').find('.el').not('.title');
let excludeRegion = $(':checkbox[name="exclude-region"]:checked').map(function () {
return this.value;
}).get();
$list = $($.grep($list, function (e, i) {
let $this = $(e);
let coName = $this.find('.t2 a').attr('title');
if (coName !== undefined) {
for (let key of blacklist) {
if (coName.indexOf(key) > -1) {
$this.remove();
return false;
}
}
}
let region = $this.find('.t3').text();
if (region === '异地招聘' || excludeRegion.indexOf(region) !== -1) {
$this.remove();
return false;
}
let post = $this.find('.t1 a').text();
if (post.indexOf('试用') !== -1 || post.indexOf('体验') !== -1 || post.indexOf('可做') !== -1) {
$this.remove();
return false;
}
return true;
}));
return $list;
}
function zlzpRmBl($html) {
let $list = $html.find('#newlist_list_content_table').find('table').not(':first');
let excludeRegion = $(':checkbox[name="exclude-region"]:checked').map(function () {
return this.value;
}).get();
$list = $($.grep($list, function (e, i) {
let $this = $(e);
let coName = $this.find('.gsmc a:first').text();
if (coName !== undefined) {
for (let key of blacklist) {
if (coName.indexOf(key) > -1) {
$this.remove();
return false;
}
}
}
let region = $this.find('.gzdd').text();
if (region === '异地招聘' || excludeRegion.indexOf(region) !== -1) {
$this.remove();
return false;
}
let post = $this.find('.zwmc a').text();
if (post.indexOf('试用') !== -1 || post.indexOf('体验') !== -1 || post.indexOf('可做') !== -1) {
$this.remove();
return false;
}
return true;
}));
return $list;
}
$(function () {
let hostname = location.hostname;
// 修改访问过的链接颜色
$('head').append('<style>a:visited {color: blue !important;}</style>');
let excludeCheckbox = '<div style="margin-bottom: 10px"> ' +
'<span> 排除地区:</span> ' +
'<input type="checkbox" name="exclude-region" value="武汉-江岸区" checked>江岸 ' +
'<input type="checkbox" name="exclude-region" value="武汉-江汉区" checked>江汉 ' +
'<input type="checkbox" name="exclude-region" value="武汉-硚口区" checked>硚口 ' +
'<input type="checkbox" name="exclude-region" value="武汉-汉阳区" checked>汉阳 ' +
'<input type="checkbox" name="exclude-region" value="武汉-武昌区" checked>武昌 ' +
'<input type="checkbox" name="exclude-region" value="武汉-青山区" checked>青山 ' +
'<input type="checkbox" name="exclude-region" value="武汉-洪山区">洪山 ' +
'<input type="checkbox" name="exclude-region" value="武汉-东西湖区" checked>东西湖 ' +
'<input type="checkbox" name="exclude-region" value="武汉-汉南区" checked>汉南 ' +
'<input type="checkbox" name="exclude-region" value="武汉-蔡甸区">蔡甸 ' +
'<input type="checkbox" name="exclude-region" value="武汉-江夏区">江夏 ' +
'<input type="checkbox" name="exclude-region" value="武汉-黄陂区" checked>黄陂 ' +
'<input type="checkbox" name="exclude-region" value="武汉-新洲区" checked>新洲 ' +
'<input type="checkbox" name="exclude-region" value="武汉-东湖新技术开发区" checked>东湖新技术开发区 ' +
'<input type="checkbox" name="exclude-region" value="武汉-武汉经济技术开发区" >经济技术开发区 ' +
'<input type="checkbox" name="exclude-region" value="武汉-武汉吴家山经济技术开发区" checked>吴家山经济技术开发区 ' +
'<button type="button" id="deselect-all" style="display: inline;" >取消选中</button> ' +
'<button type="button" style="display: inline;" onclick=localStorage.removeItem("localBl") >清除自定义黑名单</button>' +
'</div>';
if (hostname === 'search.51job.com') {
$('#dw_choice_mk').after(excludeCheckbox);
rmBl($(document));
$('#resultList').find('.el .t2 a').after('<a href="javascript:;" class="remove-co" style="color: #e23b1d;"> X</a>');
$('#resultList').on('click', '.remove-co', function () {
let coName = $(this).siblings().attr('title');
blacklist.push(coName);
localStorage.localBl = JSON.stringify(blacklist);
rmBl($(document));
});
let nextUrl = $('#rtNext').attr('href');
$(window).scroll(function () {
if ($(window).scrollTop() + $(window).height() > $(document).height() - 700) {
if (nextUrl !== undefined) {
$.ajax({
url: nextUrl,
async: false,
success: function (html) {
// ajax获取的页面
let $page = $(html);
// 更新下一页地址
nextUrl = $page.find('#rtNext').attr('href');
// 过滤页面
let $filterPage = rmBl($page);
// 添加页面分割标识
$('<div class="el pageNum" style="text-align: center;">第' + $page.find('#resultList').find('.dw_tlc div[class="rt"]:eq(1)').text() + '页</div>').insertAfter($('#resultList').find('.el:last'));
// 增加屏蔽按钮
$filterPage.find('.t2 a').after('<a href="javascript:;" class="remove-co" style="color: #e23b1d;"> X</a>');
// 添加到原有列表结尾
$filterPage.insertAfter($('#resultList').find('.el:last'));
// 修改职位总计为当前页面实际数值
$('#resultList').find('div[class="rt"]').text('共' + $('#resultList').find('.el').not('.title,.pageNum').length + '条职位');
}
});
}
}
});
// 加载页面后隐藏下一页按钮
$('#rtPrev').parent().hide();
$('.dw_page').hide();
} else if (hostname === 'sou.zhaopin.com') {
$('.seach_yx').after(excludeCheckbox);
zlzpRmBl($(document));
$('#newlist_list_content_table').find('.gsmc').not(':first').append('<a href="javascript:;" class="remove-co" style="color: #e23b1d;"> X</a>');
$('#newlist_list_content_table').on('click', '.remove-co', function () {
let coName = $(this).siblings().first().text();
blacklist.push(coName);
localStorage.localBl = JSON.stringify(blacklist);
zlzpRmBl($(document));
});
let nextUrl = $('.pagesDown-pos a').attr('href');
$(window).scroll(function () {
if ($(window).scrollTop() + $(window).height() > $(document).height() - 500) {
if (nextUrl !== undefined) {
$.ajax({
url: nextUrl,
async: false,
success: function (html) {
// ajax获取的页面
let $page = $(html);
// 更新下一页地址
nextUrl = $page.find('.pagesDown-pos a').attr('href');
let $pageNum = $page.find('#goto');
let sumPageNum = $pageNum.attr('onkeypress').split(',').pop().slice(0, -1);
// 过滤页面
let $filterPage = $('<h1 style="text-align: center; font-size: 2em !important;">' + '第' + $page.find('#goto').val() + ' / ' + sumPageNum + '页' + '</h1>').add(zlzpRmBl($page));
// 增加屏蔽按钮
$filterPage.find('.gsmc').append('<a href="javascript:;" class="remove-co" style="color: #e23b1d;"> X</a>');
// 添加到原有列表结尾
$('#newlist_list_content_table').append($filterPage);
// 修改职位总计为当前页面实际数值
$('.search_yx_tj').find('em').text($('#newlist_list_content_table').find('.gsmc').not(':first').length);
}
});
}
}
});
$('.pagesDown').hide();
}
$('#deselect-all').on('click', function () {
$('[name="exclude-region"]').attr('checked', false);
});
});