Apec.fr sans spam SSII

Supprimme les annonces des SSII sur le site de l'Apec

您需要先安装一个扩展,例如 篡改猴Greasemonkey暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴Userscripts ,之后才能安装此脚本。

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

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

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

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

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

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

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

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

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

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

// ==UserScript==
// @name        Apec.fr sans spam SSII
// @description Supprimme les annonces des SSII sur le site de l'Apec
// @namespace   http://userscripts.org/scripts/show/157778
// @include     http://*.apec.fr/*
// @grant       GM_setValue
// @grant       GM_getValue
// @grant       GM_deleteValue
// @version     1.6
// @require			http://code.jquery.com/jquery-2.1.0.js
// ==/UserScript==

var blockedBoites =  new Array(
/^MALTEM CONSULTING GROUP/i,
/^PROSERVIA/i,
/^6EME SENS TECHNOLOGY/i,
/^KENT$/i,
/^CLESYS/i,
/^THALES SERVICES/i,
/^INFORMATIS TECHNOLOGY SYSTEM/i,
/^MATEN/i,
/^INDETEC/i,
/^SOPRA GROUP/i,
/^ALTEN ITC/i,
/^ALTEN( +|$)/i,
/^GLOBAL TECHNOLOGIES/i,
/^AGH CONSULTING/i,
/^IBM/i,
/^Capgemini/i,
/^Atos Origin/i,
/^Logica/i,
/^HP$/i,
/^Accenture/i,
/^Sopra Group/i,
/^Steria/i,
/^CSC$/i,
/^Thales CIS/i,
/^GFI Informatique/i,
/^Bull/i,
/^Docapost/i,
/^Altran/i,
/^Alten/i,
/^Akka Technologies/i,
/^Neurones/i,
/^Open$/i,
/^Astek/i,
/^Spie Communications/i,
/^Devoteam/i,
/^Osiatis/i,
/^NextiraOne/i,
/^T-Systems/i,
/^SII$/i,
/^SCC$/i,
/^Dell/i,
/^Tessi$/i,
/^CS Communication & Systemes/i,
/^Euriware/i,
/^Assystem/i,
/^Adecco/i,
/^APX$/i,
/^Xerox/i,
/^Business & Decision/i,
/^SQLI/i,
/^Wipro/i,
/^Econocom/i,
/^Overlap Groupe/i,
/^Solucom/i,
/^Alti$/i,
/^Kurt Salmon/i,
/^Aubay/i,
/^NCR$/i,
/^Infotel/i,
/^Apside/i,
/^Beijaflore/i,
/^Telindus/i,
/^Tibco/i,
/^Micropole-Univers/i,
/^Ausy/i,
/^Team Partners Group/i,
/^Its Group/i,
/^Keyrus/i,
/^Unisys/i,
/^Fujitsu/i,
/^Consort NT/i,
/^Computacenter/i,
/^Aptus/i,
/^Sodifrance/i,
/^ESR$/i,
/^Cognitis Group/i,
/^Acti/i,
/^TCS$/i,
/^Wincor Nixdorf/i,
/^Groupe Helice/i,
/^Eurogiciel/i,
/^Segula Technologies/i,
/^SunGard Data Systems/i,
/^Feel Europe Groupe/i,
/^Ares$/i,
/^Viseo/i,
/^Proservia/i,
/^Viveris/i,
/^Solutions 30/i,
/^Vision IT/i,
/^Prodware/i,
/^Umanis/i,
/^Prosodie/i,
/^Maltem Consulting/i,
/^Aedian/i,
/^EffiTIC/i,
/^Safran Engineering Services/i,
/^Northgate IS/i,
/^Oresys/i,
/^Logware/i,
/^Oxya/i,
/^Infosys/i,
/^Degetel groupe/i,
/^Hardis/i,
/^Eryma/i,
/^Airial Conseil/i,
/^TRSB Groupe/i,
/^Groupe Cella/i,
/^Soft Computing/i,
/^Valtech/i,
/^AFD Technologies/i,
/^Neo-Soft/i,
/^Dimension Data/i,
/^Adneom/i,
/^EXPERT LINE/i,
/^NETXP/i,
/^ARTEMYS/i,
/^GROUPE ESR/i,
/^CYCLAD FRANCE/i,
/^ITEM SERVICES/i,
/^OBJECTWARE/i,
/^EXTIA$/i,
/^SIA PARTNERS$/i,
/^LCC FRANCE S\.A\.R\.L\.$/i,
/^IKOS$/i,
/^GROUPE ON-X$/i,
/^PANDA SERVICES$/i,
/^STRATHOM$/i,
/^INTITEK$/i,
/^DAVIDSON CONSULTING$/i,
/^ACTHOM CONSEIL ET INGENIERIE$/i,
/^IENA CONSULTING$/i,
/^SOGETI FRANCE$/i,
/^KAORI SAS$/i,
/^GENIOUS SYSTEMES$/i,
/^YSANCE$/i,
/^ABAKUS$/i,
/^HR TEAM$/i,
/^SAPIENS CONSULTING$/i,
/^SEXTANT SOLUTIONS INFORMATIQUES$/i,
/^INTRINSEC$/i,
/^AKKA I & S$/i,
/^METANEXT$/i,
/^THANIS$/i,
/^TO B SERVICES$/i,
/^SYNCHRONE$/i,
/^PROGELOG$/i,
/^OSIRES$/i,
/^BLUTE@MS TECHNOLOGY$/i,
/^ANSON MCCADE$/i,
/^PEARL IT CONSULTING$/i,
/^ANTARES IT$/i,
/^MGI CONSULTANTS$/i,
/^SAS EOLEN$/i,
/^OPEN WIDE$/i,
/^CHALLENGE2MEDIA \(C2M\)$/i,
/^GROUPAGORA$/i,
/^AVANGUARD$/i,
/^SILICOM$/i,
/^ALYOTECH ENGINEERING$/i,
/^LYBELIS$/i,
/^NEWRUN$/i,
/^ACCELITE$/i,
/^3S INFORMATIQUE$/i,
/^MATIS SI$/i,
/^FEDUCIA$/i,
/^QUICK SOURCE$/i,
/^TAIX SAS$/i,
/^INGCOM$/i,
/^SUNAPSIS$/i,
/^CLARITEAM SA$/i,
/^I-TRACING$/i,
/^SYNOPSIA INGENIERIE$/i,
/^INTEGRALE IP$/i,
/^ARISMORE$/i,
/^NEXTON CONSULTING$/i,
/^T-T CONSULTING$/i,
/^IDNA$/i,
/^HELPLINE$/i,
/^SGUI$/i,
/^FISH EYE TECHNOLOGIES$/i,
/^FHM SOLUTIONS FRANCE$/i,
/^AXONES$/i,
/^R2E CONSEIL$/i,
/^FINAXYS$/i,
/^ID2 GROUPE$/i,
/^DCS EASYWARE$/i,
/^SBP$/i,
/^CAT AMANIA$/i,
/^AMARIS$/i,
/^AFERSYS$/i,
/^SQUAD$/i,
/^MF CONSULTING$/i,
/^SAS MCNEXT$/i,
/^OPENBRIDGE$/i,
/^AVISTO$/i,
/^MODIS FRANCE$/i,
/^QUARTZ-INGENIERIE$/i,
/^PROTECTIC$/i,
/^INATIS$/i,
/^TREFLE INGENIERIE$/i,
/^AKKA I & S$/i,
/^QUANTIC ETUDES$/i,
/^SIPROJ$/i,
/^PARTENOR$/i,
/^ATOS INTEGRATION SAS$/i,
/^OMNILOG$/i,
/^TALEA$/i,
/^CELLA INFORMATIQUE$/i,
/^L' INFORMATIQUE COMMUNICANTE$/i,
/^DEGETEL GROUP$/i,
/^GREEN CONSEIL$/i,
/^NOUVELI$/i,
/^ADENIUM SAS$/i,
/^MATIS TECHNOLOGIES$/i,
/^ERES TECHNOLOGIE$/i,
/^COMTIS$/i,
/^IMPROVEUS$/i,
/^ABS TECHNOLOGIES$/i,
/^OZITEM$/i,
/^CORAUD$/i,
/^ALYOTECH$/i,
/^ON-X$/i,
/^GROUPE SOFT COMPANY$/i,
/^AXILEO$/i,
/^CTS$/i,
/^ATOS A2B/i,
/^INFOSPEC$/,
/^SPIE$/,
/^M PLANET$/,
/^AKEBIA$/,
/^PARITEL TELECOM$/,
/^CELAD$/,
/^ALYOTECH CONSULTING$/,
/^KP2I$/,
/^PHINEO$/,
/^ACIAL$/,
/^INVIVOO$/,
/^IBSI$/,
/^SAVANE$/,
/^ALTER SOLUTIONS$/,
/^FORSITEC$/,
/^STEEPCONSULT SA$/,
/^GALLAN CONSULTING$/,
/^AXEL IT$/,
/^SNAISO$/,
/^LEXSI$/,
/^FREE EXPERT$/,
/^UNIWARE GLOBAL SERVICES$/,
/^4ICOM$/,
/^ABASE SAS$/,
/^AMD CONSULTING$/,
/^CASTELIS$/,
/^ATHEOS$/,
/^GROUPE ELCIMAI$/,
/^AMD CONSEIL$/,
/^LOGFI$/,
/^EXPERIS IT$/,
/^DRIMS$/,
/^SIBIO$/,
/^CNS COMMUNICATIONS$/,
/^AKKA I & S$/,
/^FRAMEIP$/,
/^SMILE$/,
/^EXPECTRA$/,
/^INCKA$/,
/^INFACT FRANCE$/,
/^ODESYS$/,
/^CGI$/,
/^LINCOLN SA$/,
/^CONSULTAKE$/,
/^AVANISTA$/,
/^VITAM$/,
/^AMESYS$/,
/^NEOVITY$/,
/^TECHNO 5$/,
/^KEREVAL$/,
/^ELSYS DESIGN$/,
/^SOGETI HIGH TECH$/,
/^ALTER DEFENSE$/,
/^ORNESS$/,
/^IN SITU$/,
/^EXL GROUP$/,
/^SELESCOPE$/,
/^MALLYANCE$/,
/^CISIF$/,
/^LOGAXONE$/,
/^PRIME IT$/,
/^DIADEMYS$/,
/^STUDEC$/,
/^CLARANS CONSULTING$/,
/^DATA BASE FACTORY$/,
/^DGE INTERIM$/,
/^ETRALI$/,
/^QUANTIC$/,
/^DELETEC$/,
/^S'TEAM MANAGEMENT$/,
/^SOGETREL$/,
/^CONSORT FRANCE$/,
/^EVA GROUP$/,
/^COMPUTER FUTURES SOLUTIONS$/,
/^INTERDATA$/,
/^MANAGEMENT CONSEIL INGENIERIE$/,
/^KEY CONSULTING$/,
/^ATLANTIC INGENIERIE$/,
/^NETAPSYS CONSEIL$/,
/^GESER-BEST$/,
/^IT LINK SYSTEM$/,
/^IT LINK$/,
/^KACILEO$/,
/^NTT CORPORATE$/,
/^PRO IT CONSEIL$/,
/^TALEND S\.A\.$/,
/^ACT'M ADVISORS$/,
/^EPI ETUDES & PROJETS INDUSTRIELS$/,
/^BT SERVICES$/,
/^D-FI SERVICES$/,
/^NEO SOFT SERVICES$/,
/^SEA TPI$/,
/^VENEDIM$/,
/^SAFARI TECHNOLOGIES$/,
/^EUROPARTNER FRANCE$/,
/^HN SERVICES$/,
/^MANAGEMENT AND BUSINESS ASSOCIATES$/,
/^ESR - GROUPE OSIATIS$/,
/^KLEE$/,
/^SAVANE CONSULTING$/,
/^ARROW ECS$/,
/^DG CONSEILS$/,
/^CRISTAL SOLUTIONS$/,
/^2SB$/,
/^CONSEILS ET SYSTEMES INFORMATIQUES$/,
/^F. INICIATIVAS$/,
/^AMESYS CONSEIL$/,
/^ACCESS ETOILE$/,
/^INGIMA$/,
/^ACENSI SAS$/,
/^ABSYS CYBORG$/,
/^COGITEAM$/,
/^INFOG$/,
/^AKKA INGENIERIE PRODUIT$/,
/^MEILLEURE GESTION$/,
/^ELANZ$/,
/^CS SYSTEMES D'INFORMATION$/,
/^BAW$/,
/^SAS SOLLAN FRANCE$/
);

var blockedDesc =  new Array(
/\bConseil en Technologies\b/i,
/\bconseil et l'ingénierie\b/i,
/\bConseil en informatique\b/i,
/\bcabinets? de conseil\b/i,
/\bcabinets? indépendant de conseil\b/i,
/\bSociétés? d'Ingénierie\b/i,
/\bsociétés? de services?\b/i,
/\bSociétés? de conseil\b/i,
//\bsociété de Conseil en informatique\b/i,
//\bsociété de conseil et d'ingénierie informatique\b/i,
//\bSociété de Conseil et de Service en Ingénierie Informatique\b/i,
//\bSociété de Services? en Ingénierie Informatique\b/i,
/\bEntreprises? de Services? du Numérique\b/i,
/\bESN\b/i,
//\bintégrateur de solutions\b/i,
/\bintégrateur d'infrastructure\b/i,
/\bintegrateur Grands Comptes\b/i,
//\best un integrateur\b/i,
/\bSSII\b/i,
/[ée]diteurs? (français )?(de )?logiciels?\b/i,
/[ée]diteurs? (de )?progiciels et \b/i,
/[ée]diteurs? (de )?solutions\b/i,
/\bintégrateurs? de solutions applicatives\b/i,
/\bintégrateur spécialisé\b/i,
/\bintégrateur de solutions\b/i,
/\bspécialisée? dans l'intégration\b/i,
/\bfournisseur de services managés\b/i,
/\b[ée]ntreprise de Services du Numérique\b/i,
/\b[ée]ntreprise Intégrateur\b/i,
/\b[ée]diteur de solutions\b/i,
/\bde services numériques\b/i,
/\bdéploie pour ses clients\b/i,
/\bleaders français sur le marché des télécoms\b/i,
/\bFort de ses [0-9]+ consultant\b/i,
//\ben tant qu'équipementier et intégrateur\b/i,
/\bdes? grandes entreprises\b/i,
/\bnous délivrons des projets\b/i,
/\bdéploie pour ses clients des solutions d'optimisation IT\b/i,
/\bpartenaire incontournable [^.]+ systèmes d'informations\b/i,
/\bSolutions de Sécurité Informatique\b/i,
/\baccompagnons nos clients dans la gestion de leurs systèmes d informations\b/i,
/\bleaders incontestés dans les services en informatique\b/i,
/\bConseil en Technologies\b/i,
/\bNos équipes accompagnent les acteurs des secteurs\b/i,
/\baccompagne un client\b/i,
/\bmode projet auprès de nos clients\b/i,
/\bprestation de service\b/i,
/\baccompagner? les grands comptes\b/i,
/\baccompagner? les grandes entreprises\b/i,
/\baccompagner? nos clients\b/i
);


var whiteDesc =  new Array(
/\brecrutement\b/,
/\bDirection des systèmes\b/,
/\bDSI\b/,
/\brecrute pour son client\b/
);



var blockedTitle =  new Array(
/\bconsultant\b/i
);

// Variables de titre

var theParent = document.getElementById('content');
var theKids = theParent.children;
var initTitle = theKids[0].innerHTML;

//var a = [];
//GM_setValue("customBoites", JSON.stringify(a));

// manage cookie
// GM_deleteValue("customBoites");

if(GM_getValue("customBoites")) {
	var customBoites = JSON.parse(GM_getValue("customBoites"));
} else {
	var customBoites = new Array();
}
//blockedBoites=blockedBoites.concat(customBoites);


function addtoGM(e) {
				console.log(e);
		var boitez=e.target.innerHTML;
		
	if(confirm("Ne plus afficher les annonces de "+boitez+" ?")) {

		customBoites.push(boitez);
		GM_setValue("customBoites", JSON.stringify(customBoites));
		console.log(GM_getValue("customBoites"));
		
		//var up=e.target.parentNode.parentNode.parentNode;
		//	up.parentNode.removeChild(up);
		
		ReplaceContentInContainer(".boxContent.offre");
	
		var rightBoite = document.createElement('div');
		rightBoite.innerHTML = boitez;
		rightBoite.addEventListener("click", removefromGM, false);
		rightPan.appendChild(rightBoite);
	
	}
}

function removefromGM(e) {
		console.log(e);
		var boitez=e.target.innerHTML;
		
	if(confirm("Réafficher les annonces de "+boitez+" ?\n(effet après rafraichissement de la page)")) {

		var idx = customBoites.indexOf(boitez);  // Find the index
		if(idx!=-1) customBoites.splice(idx, 1); // Remove from array
	
		GM_setValue("customBoites", JSON.stringify(customBoites));
		console.log(GM_getValue("customBoites"));
		
		var up=e.target;
			up.parentNode.removeChild(up);
		
	}
	
	
}

function ReplaceContentInContainer(selector) {
var count_replaced=0;
var nodeList = document.querySelectorAll(selector);
    $(selector).each(function(){ // Boite loop
        var jboite_h4 = $(this).find("h4").first();
        var boite_h4 = jboite_h4[0];
        if(boite_h4 && boite_h4.tagName == "H4") { // Get boite name (this = announce block, boite_h4 = company name & location, boite[1] = company name)
            var boite=stripTags(boite_h4.innerHTML).replace(/\s+/g," ").replace(/^ /,"").match(/^(.+) \- (.+)$/);
            if(boite === null && boite_h4.children[0]) {
                boite=new Array();
                boite[1]=boite_h4.children[0].innerHTML;

            } else { // Make boite clickable
                var logtxt = boite[1];
                boite_h4.innerHTML=boite_h4.innerHTML.replace(/<\/?([^>]+)>/ig,""); // strip tags
                var btn = document.createElement('h4');
                var btns1 = document.createElement('span');
                var btns2 = document.createElement('span');
                btns1.addEventListener("click", addtoGM, false);
                var tmp =boite;
                var tmp2=boite[2];
                btns1.innerHTML=tmp[1]; 
                btns2.innerHTML=" - "+tmp2; 
                btn.appendChild(btns1);
                btn.appendChild(btns2);
                $(btn).insertBefore(jboite_h4);
                jboite_h4.remove();
            }

            // Check & disable boite based on HARD-CODED company name
            var broken=false;
            for (var j=0, len=blockedBoites.length;j<len;j++) {
                if(boite[1].match(blockedBoites[j])) {
                    logtxt += " ... removed! (cause: hard-coded company blacklist)"; 
                    $(this).remove();
                    count_replaced++;
                    broken = true;
                    break;
                }
                    
            }
            
            // Check & disable boite based on USER-DEFINED company name
            if(!broken)
                for (var j=0, len=customBoites.length;j<len;j++) {
                    if(boite[1] == customBoites[j]) {
                        logtxt += " ... removed! (cause: user-defined company blacklist)";
                        $(this).remove();
                        count_replaced++;
                        broken = true;
                        break;
                    }
                }

            // Check & disable boite based on HARD-CODED description
            if(!broken) {
                var annDesc = $(this).find("div.intituleForHighlight").text();
                for (var j=0, len=blockedDesc.length;j<len;j++) {
                    if(annDesc.match(blockedDesc[j])) {
                        
                    var whitelisted = false;
                    for (var j=0, len=whiteDesc.length;j<len;j++) {
                        if(annDesc.match(whiteDesc[j])) {
                            whitelisted = true;
                        }
                    }
                    if(!whitelisted) {
                        logtxt += " ... removed! (cause: suspicious sentence in description)";
                        //$(this).remove();
                        $(this).css("opacity", 0.25);
                        count_replaced++;
                        broken = true;
                    }
                        break;
                    }
                }
            }

            // Check & disable boite based on HARD-CODED description
            if(!broken) {
                var annTitle = $(this).find("h3").text();
                for (var j=0, len=blockedTitle.length;j<len;j++) {
                    if(annTitle.match(blockedTitle[j])) {
                        logtxt += " ... removed! (cause: suspicious sentence in title)";
                        $(this).remove();
                        count_replaced++;
                        broken = true;
                        break;
                    }
                }
            }

            console.log(logtxt);

        }
    });

 // Afficher le nombre de résultats supprimés dans le titre de page

var deletednb = count_replaced;

theKids[0].innerHTML=initTitle.replace(" correspondent à votre recherche",", "+deletednb+" supprimée"+((deletednb>1)?"s":"")+" sur cette page");
  
return count_replaced;
}

function stripTags(stringz) {
  return stringz.replace(/<\/?[^>]+>/g, '');
}

 // Lancer la suppression des annonces

ReplaceContentInContainer(".boxContent.offre");


// Afficher la liste des entreprises bloquées par l'utilisteur

var rightPan = document.querySelectorAll(".box2Benday")[0];
var rightTitle = document.createElement('div');
rightTitle.innerHTML = "<b>Entreprises perso. exclues:</b><br>"
rightPan.appendChild(rightTitle);

	for (var i=0, len=customBoites.length;i<len;i++) {
		var rightBoite = document.createElement('div');
		rightBoite.innerHTML = customBoites[i];
		rightBoite.addEventListener("click", removefromGM, false);
		rightPan.appendChild(rightBoite);
	}