├── manifest.json ├── README.rst ├── LICENSE └── unfeed.js /manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "manifest_version": 2, 3 | 4 | "name": "Unfeed", 5 | "description": "This extension information critical 6 | to the typical newsfeed environement 7 | including profile name and pictures.", 8 | "version": "1.0", 9 | 10 | "content_scripts": [ 11 | { 12 | "matches": ["https://www.facebook.com/*"], 13 | "js": ["unfeed.js"] 14 | } 15 | ], 16 | 17 | "permissions": [ 18 | "https://www.facebook.com/" 19 | ] 20 | } 21 | 22 | -------------------------------------------------------------------------------- /README.rst: -------------------------------------------------------------------------------- 1 | ====== 2 | unfeed 3 | ====== 4 | 5 | This is a simple Google Chrome extension that removes key profile information 6 | from the Facebook newsfeed. This lets us take a interesting look at what makes 7 | stories important at a fundamental level. 8 | 9 | ============ 10 | Installation 11 | ============ 12 | * Download this as a zip file to the desktop and unpack it. 13 | * Navigate to chrome://extensions/ in Chrome and select developer mode. 14 | * Click on "Load unpacked extension..." and choose the unfeed directory. 15 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | This is free and unencumbered software released into the public domain. 2 | 3 | Anyone is free to copy, modify, publish, use, compile, sell, or 4 | distribute this software, either in source code form or as a compiled 5 | binary, for any purpose, commercial or non-commercial, and by any 6 | means. 7 | 8 | In jurisdictions that recognize copyright laws, the author or authors 9 | of this software dedicate any and all copyright interest in the 10 | software to the public domain. We make this dedication for the benefit 11 | of the public at large and to the detriment of our heirs and 12 | successors. We intend this dedication to be an overt act of 13 | relinquishment in perpetuity of all present and future rights to this 14 | software under copyright law. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 18 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 19 | IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR 20 | OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 21 | ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 22 | OTHER DEALINGS IN THE SOFTWARE. 23 | 24 | For more information, please refer to -------------------------------------------------------------------------------- /unfeed.js: -------------------------------------------------------------------------------- 1 | /* 2 | unfeed.js 3 | Removes key profile information from the newsfeed 4 | @author: Charles J Lai 5 | */ 6 | 7 | //Constants 8 | var UPDATE_INTERVAL = 100; 9 | var LONG_UPDATE_INTERVAL = 10000; 10 | 11 | //Main profile information removal function 12 | function removeProfileInfo() { 13 | //Get arrays of nodes 14 | var profileNames = document.querySelectorAll(".fwb, .profileLink"); 15 | if (typeof profileNames === undefined) { 16 | return; 17 | } 18 | var profilePics = document.getElementsByClassName("_s0 _5xib _5sq7 _rw img"); 19 | var commentPics = document.getElementsByClassName("UFIImageBlockImage"); 20 | var commentNames = document.getElementsByClassName("UFICommentActorName"); 21 | 22 | //Remove all profile pictures in the viewport 23 | for (var i = 0; i < profilePics.length; i++) { 24 | profilePics[i].remove(); 25 | } 26 | 27 | //Remove all commenter pictures in the viewport 28 | for (var i = 0; i < commentPics.length; i++) { 29 | commentPics[i].remove(); 30 | } 31 | 32 | //Replace all profile names in the view port with "Someone". 33 | for (var i = 0; i < profileNames.length; i++) { 34 | profileNames[i].innerHTML = "Someone"; 35 | } 36 | 37 | //Replace all commenter names in the view port with "Someone". 38 | for (var i = 0; i < commentNames.length; i++) { 39 | commentNames[i].innerHTML = "Someone"; 40 | } 41 | } 42 | 43 | /////////////// 44 | //MAIN SCRIPT// 45 | /////////////// 46 | 47 | //Initial removal on load 48 | removeProfileInfo(); 49 | //Remove ticker in side-bar 50 | var ticker = document.getElementsByClassName("ticker_stream"); 51 | ticker[0].remove(); 52 | //Attempt to remove more information on UPDATE_INTERVAL 53 | setInterval(removeProfileInfo, UPDATE_INTERVAL); 54 | --------------------------------------------------------------------------------