// ==UserScript==
// @name Facebook Recent Activity
// @namespace sizzlemctwizzle
// @description Automatically remove your recent activity stories
// @require http://sizzlemctwizzle.com/updater.php?id=68225
// @include http://*.facebook.com/*
// ==/UserScript==
var isGM = typeof GM_getValue != 'undefined' && typeof GM_getValue('a', 'b') != 'undefined',
log = (this.isGM) ? GM_log : ((window.opera) ? opera.postError : console.log),
recentDefault = true;
if (!isGM) unsafeWindow = window;
function save(store, obj) {
try {
var val = JSON.stringify(obj);
(isGM?GM_setValue:(function(name,value){return localStorage.setItem(name,value)}))(store,val);
} catch(e) {
log("GM_config failed to save settings!");
}
}
function read(store) {
try {
var val = (isGM?GM_getValue:(function(name,def){return localStorage.getItem(name)||def}))(store, '{}'), rval;
rval = JSON.parse(val);
} catch(e) {
log("GM_config failed to read saved settings!");
rval = {};
}
return rval;
}
function $x(x, t, r) {
if (t && t.nodeType)
var h = r, r = t, t = h;
var d = r ? r.ownerDocument || r : r = document, p;
switch (t) {
case 1:
p = 'numberValue';
break;
case 2:
p = 'stringValue';
break;
case 3:
p = 'booleanValue';
break;
case 8: case 9:
p = 'singleNodeValue';
break;
default:
return d.evaluate(x, r, null, t || 6, null);
}
return d.evaluate(x, r, null, t, null)[p];
}
function create() {
switch(arguments.length) {
case 1:
var A = document.createTextNode(arguments[0]);
break;
default:
var A = document.createElement(arguments[0]),
B = arguments[1];
for (var b in B) {
if (b.indexOf("on") == 0)
A.addEventListener(b.substring(2), B[b], false);
else if (",style,accesskey,id,name,src,href,which".indexOf("," +
b.toLowerCase()) != -1)
A.setAttribute(b, B[b]);
else
A[b] = B[b];
}
for(var i = 2, len = arguments.length; i < res =" new" onreadystatechange =" function()" readystate="="4" status="="200)" doc =" document.implementation.createDocument('','',null)," html =" document.createElement('html');" innerhtml =" text;" i =" 0," len =" lst.snapshotLength;" next =" lst.iterateNext;" item =" next())" i =" 0," len =" lst.length;" lst ="="="" post_form_id=" + unsafeWindow.Env[" __a="1&post_form_id_source="AsyncRequest&fb_dtsg="" settings =" read('recentActivity');" settings =" read('recentSettings');" rel="async-post" url =" recent.getAttribute('href');" url ="="" url =" recent.getAttribute('ajaxify');" story_type =" url.match(/story_type="(\d+)/i)[1]," story_key =" url.match(/story_key="(\d+)/i)[1];" __a="1" profile_fbid="+unsafeWindow.Env.user+" ministory_key="+story_key+" story_type="+story_type+" revoke_permission="); if (remove) destroy(recent.parentNode.parentNode.parentNode); } }); } function recentActivityProcess(forced) { // Remove those stories from your profile that Facebook publishes anytime you do anything // You use to be able to turn them off but now Faceboook makes you delete them one by one if (!forced && $('edit_profilepicture')) removeActivity($('content'), true); else if(forced) { var user = unsafeWindow.Env.user; xhr('http://www.facebook.com/ajax/stream/profile.php?__a=1&filter=1&max_time=0&try_scroll_load=true&profile_id='+user+'&viewer_id='+user, function(text) { var div = document.createElement('div'); div.innerHTML = JSON.parse(text.split('for (;;);')[1]).payload.stream_html; removeActivity(div, false); }); } } function fbPageChanged() { // You can access Recent Story options from the " classname ="="" settings =" read('recentActivity');" icons =" {'3':'relationship'," labels =" {'20':'Write" randid="''," len="5;" randid =" 'fbPageChangeMarker_'+randId;" checker="setInterval(function(){" activitylastchecked =" new" mouseclicks =" 0;"> (window.activityLastChecked+(1000*60*5))) {
recentActivityProcess(true);
window.activityLastChecked = new Date().getTime();
}
}, false);
document.addEventListener('click', function() {
if (window.mouseClicks >= 10) {
recentActivityProcess(true);
window.mouseClicks = 0;
} else
++window.mouseClicks;
}, true);
process();
}
}, 100);
source : userscript
Tidak ada komentar:
Posting Komentar