├── logo.png ├── CloudToButt.crx ├── Source ├── manifest.json └── content_script.js ├── LICENSE.txt └── README.md /logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panicsteve/cloud-to-butt/HEAD/logo.png -------------------------------------------------------------------------------- /CloudToButt.crx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panicsteve/cloud-to-butt/HEAD/CloudToButt.crx -------------------------------------------------------------------------------- /Source/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "manifest_version": 2, 3 | "name": "Cloud To Butt", 4 | "version": "1.0", 5 | "description": "Replaces the text 'the cloud' with 'my butt'.", 6 | "content_scripts": 7 | [ 8 | { 9 | "matches": ["*://*/*"], 10 | "js": ["content_script.js"], 11 | "run_at": "document_end" 12 | } 13 | ] 14 | } 15 | 16 | -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- 1 | DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE 2 | Version 2, December 2004 3 | 4 | Copyright (C) 2004 Sam Hocevar 5 | 6 | Everyone is permitted to copy and distribute verbatim or modified 7 | copies of this license document, and changing it is allowed as long 8 | as the name is changed. 9 | 10 | DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE 11 | TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 12 | 13 | 0. You just DO WHAT THE FUCK YOU WANT TO. 14 | -------------------------------------------------------------------------------- /Source/content_script.js: -------------------------------------------------------------------------------- 1 | walk(document.body); 2 | 3 | function walk(node) 4 | { 5 | // I stole this function from here: 6 | // http://is.gd/mwZp7E 7 | 8 | var child, next; 9 | 10 | var tagName = node.tagName ? node.tagName.toLowerCase() : ""; 11 | if (tagName == 'input' || tagName == 'textarea') { 12 | return; 13 | } 14 | if (node.classList && node.classList.contains('ace_editor')) { 15 | return; 16 | } 17 | 18 | switch ( node.nodeType ) 19 | { 20 | case 1: // Element 21 | case 9: // Document 22 | case 11: // Document fragment 23 | child = node.firstChild; 24 | while ( child ) 25 | { 26 | next = child.nextSibling; 27 | walk(child); 28 | child = next; 29 | } 30 | break; 31 | 32 | case 3: // Text node 33 | handleText(node); 34 | break; 35 | } 36 | } 37 | 38 | function handleText(textNode) 39 | { 40 | var v = textNode.nodeValue; 41 | 42 | v = v.replace(/\bThe Cloud\b/g, "My Butt"); 43 | v = v.replace(/\bThe cloud\b/g, "My butt"); 44 | v = v.replace(/\bthe Cloud\b/g, "my Butt"); 45 | v = v.replace(/\bthe cloud\b/g, "my butt"); 46 | 47 | textNode.nodeValue = v; 48 | } 49 | 50 | 51 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | cloud-to-butt 2 | ============= 3 | 4 | ![](logo.png) 5 | 6 | Chrome extension that replaces occurrences of 'the cloud' with 'my butt' 7 | 8 | [Direct download of crx file](https://github.com/panicsteve/cloud-to-butt/blob/master/CloudToButt.crx?raw=true) 9 | 10 | Note that there are forks of this extension that simply replace 'cloud' with 'butt'. 11 | In my personal opinion, that approach is too broad and it's less funny as a result, but it is clearly a very 12 | polarizing issue in the cloud-to-butt user community. Forks are free to do whatever they like. But officially, _this_ extension replaces only the phrase described above, and therefore it did not replace your cloudflare URLs with buttflare URLs. Thank you for your concern. 13 | 14 | Screenshot Gallery 15 | ------------------ 16 | 17 | http://www.flickr.com/groups/cloud-to-butt/ 18 | 19 | Installation 20 | ------------ 21 | 22 | In Chrome, choose Window > Extensions. Drag CloudToButt.crx into the page that appears. 23 | 24 | Safari Version 25 | -------------- 26 | 27 | Can be found here: https://github.com/logancollins/cloud-to-butt-safari 28 | 29 | Firefox Version 30 | --------------- 31 | 32 | Can be found here: https://github.com/DaveRandom/cloud-to-butt-mozilla 33 | 34 | 35 | Opera Version 36 | --------------- 37 | 38 | Can be found here: https://github.com/DaveRandom/cloud-to-butt-opera 39 | --------------------------------------------------------------------------------