您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Manages Wall Posts for Various FB Games
当前为
// ==UserScript== // @name FB Wall Manager // @namespace MerricksdadWallManager // @description Manages Wall Posts for Various FB Games // @include http*://www.facebook.com/pages/FB-Wall-Manager/* // @license http://creativecommons.org/licenses/by-nc-nd/3.0/us/ // @grant GM_setValue // @grant GM_getValue // @grant GM_xmlhttpRequest // @grant GM_registerMenuCommand // @grant GM_addStyle // @grant GM_log // @grant GM_openInTab // @grant GM_getResourceURL // @version 4.0.0.1 // @copyright Charlie Ewing except where noted // @require https://greasyfork.org/scripts/416-wm-common-library/code/WM%20Common%20Library.user.js // @require https://greasyfork.org/scripts/417-wm-debug-console/code/WM%20Debug%20Console.user.js // @require https://greasyfork.org/scripts/418-js-forms-library-b/code/JS%20Forms%20Library%20B.user.js // @require https://greasyfork.org/scripts/419-wm-config-interface/code/WM%20Config%20Interface.user.js // @require https://greasyfork.org/scripts/6908-wm-host-object/code/WM%20Host%20Object.js // @require https://greasyfork.org/scripts/6907-wm-user-console-object/code/WM%20User%20Console%20Object.js // @require https://greasyfork.org/scripts/6906-wm-sidekick-docking-object/code/WM%20Sidekick%20Docking%20Object.js // @require https://greasyfork.org/scripts/6905-wm-collector-object/code/WM%20Collector%20Object.js // @require https://greasyfork.org/scripts/6904-wm-dynamic-grabber-object/code/WM%20Dynamic%20Grabber%20Object.js // @require https://greasyfork.org/scripts/6899-wm-test-object/code/WM%20Test%20Object.js // @require https://greasyfork.org/scripts/6898-wm-feed-manager-objects/code/WM%20Feed%20Manager%20Objects.js // @require https://greasyfork.org/scripts/6897-wm-friend-tracker-objects/code/WM%20Friend%20Tracker%20Objects.js // @require https://greasyfork.org/scripts/6896-wm-rules-manager-objects/code/WM%20Rules%20Manager%20Objects.js // @require https://greasyfork.org/scripts/6895-wm-app-object/code/WM%20App%20Object.js // @require https://greasyfork.org/scripts/6894-wm-post-object/code/WM%20Post%20Object.js // @resource IconSheet http://i.imgur.com/sLxzUA6.png // ==/UserScript== // Based on script built by Joe Simmons in Farmville Wall Manager (function() { //*************************************************************************************************************************************** //***** Preload //*************************************************************************************************************************************** //dont run in iframes try { //this does not mean we are using GM's unsafe window var unsafeWindow = unsafeWindow || window.wrappedJSObject || window; if (unsafeWindow.frameElement != null) return; } catch(e) {log("preload: "+e);} //*************************************************************************************************************************************** //***** Debug Object //*************************************************************************************************************************************** if (debug) { //from script WM_Debug_Console.user.js debug.init(); if (debug.initialized) log("Debug Console Initialized"); } //*************************************************************************************************************************************** //***** Globals //*************************************************************************************************************************************** //var WM=WallManager; //from script WM_Host_Object.user.js //returns the current date-time in unix format, not localized WM.__defineGetter__("currentTime",function(){try{ return timeStamp(); }catch(e){log("WM.currentTime: "+e);}}); //returns the appID of the selected app tab on the collection panel, or 'all' if 'Show All' is selected WM.__defineGetter__("currentAppTab",function(){try{ var tabCtrl=WM.console.collectTabControl; if (tabCtrl||null) { var tab = tabCtrl._selectedTab; if (tab||null) return tab.appFilter; } return "all"; }catch(e){log("WM.currentAppTab: "+e);}}); var sandbox=this; //allow certain options to be seen outside of the WallManager object //graph extension is external but still calls on WM options if they exist opts=WM.opts; quickOpts=WM.quickOpts; //*************************************************************************************************************************************** //***** global functions //*************************************************************************************************************************************** sandbox.isNumber = function(o){return ((typeof o) == "number");}; sandbox.isArray = function(o) {return Object.prototype.toString.call(o) === "[object Array]";}; //*************************************************************************************************************************************** //***** Main Program //*************************************************************************************************************************************** //*****short text versions for WM.config menu options***** var checkBox=function(l,d,c,n){return ({type:"checkbox",label:l,"default":d||false,kids:c,newitem:n});} var hidden=function(l,d,c){return ({type:"hidden",label:l,"default":d,kids:c});} var optionBlock=function(l,c,hideSelectAll,n){hideSelectAll=hideSelectAll||false;return ({type:"optionblock",label:l,kids:c,hideSelectAll:hideSelectAll,newitem:n});} var separator=function(l,s,c,hideSelectAll){hideSelectAll=hideSelectAll||false; return ({type:"separator",label:l,section:s,kids:c}); } var section=function(l,c){return ({type:"section",label:l,kids:c});} var tabSection=function(l,c){return ({type:"tab",label:l,kids:c});} var inputBox=function(l,d,n){return ({type:"float",label:l,"default":(d||0),newitem:n});} var textArea=function(l,d,n){return ({type:"textarea",label:l,"default":(d||0),newitem:n});} var colorBox=function(l,d,n){return ({type:"colorbox",label:l,"default":(d||"black"),newitem:n});} var button=function(l,s){return ({type:"button",label:l,script:s});} var anchor=function(l,u,t){return ({type:"link",label:l,href:u,title:(t||'')});} //*************************************************************************************************************************************** //***** Immediate //*************************************************************************************************************************************** log("Script: WM initialized",{level:0}); // section for reclaiming memory and stopping memory leaks var newIntv=null; //refresh interval var oldIntv=null; //refresh interval var procIntv=null; //process interval var cleanIntv=null; //post removal interval var hbIntv=null; //global heartbeat interval var olderLimit=day; //default 1 day var cleanup=function() {try{ //destroy intervals if (newIntv) window.clearInterval(newIntv); if (oldIntv) window.clearInterval(oldIntv); if (procIntv) window.clearInterval(procIntv); if (cleanIntv) window.clearInterval(cleanIntv); if (hbIntv) window.clearInterval(hbIntv); oldIntv = newIntv = procIntv = cleanIntv = hbIntv = null; //close the sidekick tabs WM.collector.closeAll(); //remove this event listener window.removeEventListener("beforeunload", cleanup, false); window.removeEventListener("message", WM.receiveSidekickMessage, false); window.removeEventListener("resize", WM.onWindowResize, false); //clean up memory WallManager=null; Graph=null; jsForms=null; olderLimit=null; opts=null; quickOpts=null; }catch(e){log("cleanup: "+e);}} window.addEventListener("beforeunload", cleanup, false); window.addEventListener("resize", WM.onWindowResize, false); //start it up WM.run(); })(); // anonymous function wrapper end /* recent changes 4.0.0.0: moved many object's code to their own files */