Skip to content

Instantly share code, notes, and snippets.

@cybear
Created January 16, 2011 19:42
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save cybear/782078 to your computer and use it in GitHub Desktop.
Save cybear/782078 to your computer and use it in GitHub Desktop.
This Chome userscript for the Danish site Just-eat.dk will dim most menues containing meat.
// ==UserScript==
// @match http://*.just-eat.dk/*
// ==/UserScript==
function oc(a){
var o={};
for(var i=0;i<a.length;i++) {o[a[i]]=true;}
return o;
};
var meats = oc('beef,blæksprutte,blæksprutter,bøf,bacon,chicken,crab,crabstick,grillkylling,kebab,kylling,kyllinge,kyllingelår,kød,kødsauce,kødstrimler,lam,lamb,lobster,okseburger,oksekød,pepperoni,pølse,pølser,rejer,rejecocktail,skinke,shawarma,tun,tuna,tunfisk'.split(','));
var MeatAnalyzer = (function() {
var m = {};
m.strToWords = function(str) {
function slugize() {
return str.replace(/[^a-zA-Z0-9åäæöøÅÄÆÖØ\s]/g," ").replace(/[\n\r\t]/g,' ').replace(' ', ' ').toLowerCase();
}
return slugize().split(' ');
};
m.containsMeat = function(str) {
var strArray = m.strToWords(str);
var truthMap = strArray.map(function(word){
return word in meats;
});
return truthMap.reduce(function(a,b){return a||b;});
};
m.markMeat = function(e) {
if (m.containsMeat((e.innerText))) {
e.className += ' meat';
}
}
return m;
})();
function addStyle(str) {
var styleNode = document.createElement('style');
var styleText = document.createTextNode(str);
styleNode.appendChild(styleText);
document.getElementsByTagName('head')[0].appendChild(styleNode);
}
function analyze() {
console.log("Running veggie-just-eat!");
var arr = [].slice.call(document.querySelectorAll('.prdDe'));
arr.forEach(MeatAnalyzer.markMeat);
addStyle('.meat,.meat h6{color:rgb(166,166,166);}');
}
analyze();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment