您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Adds a timestamp to every message
// ==UserScript== // @name In-Chat Timestamp // @namespace tag://kongregate // @description Adds a timestamp to every message // @include http://www.kongregate.com/games/* // @author Ventero // @version 1.2.2 // @date 29.12.10 // require http://kong.ventero.de/updates/55571.js // @license MIT license // ==/UserScript== // Written by Ventero (http://www.kongregate.com/accounts/Ventero) 06/04/09 // Copyright (c) 2009-2012 Ventero, licensed under MIT/X11 license // http://www.opensource.org/licenses/mit-license.php var dom = (typeof unsafeWindow === "undefined"?window:unsafeWindow); function init_chatTimestamp(){ var holodeck = dom.holodeck, ChatDialogue = dom.ChatDialogue; if(holodeck && ChatDialogue){ ChatDialogue.prototype = dom.CDprototype||dom.ChatDialogue.prototype; if(!holodeck.__timestamp){ holodeck.__timestamp = true; holodeck.addChatCommand("timeformat", function(l,n){ var k = n.match(/^\/\S+\s+(\d+)/), m = "", q = l.activeDialogue(); k && (m=k[1]); if(m==12 || m==24){ l._timeFormat = m; window.setTimeout(function(){GM_setValue("kong_timeformat", m);}, 0); q.displayMessage("Timeformat", "Set to "+m+"-hour clock (hh:mm:ss"+(m==12?" AM/PM)":")"), { "class": "whisper received_whisper"}, {non_user: true}); } else { q.displayMessage("Timeformat", "Allowed values: 12 and 24", { "class": "whisper received_whisper"}, {non_user: true}); } return false; }); holodeck.addChatCommand("tscolor", function(l,n){ var k = n.match(/^\/\S+\s+([0-9a-f]{6})/i), z = ""; k&&(z = "#"+k[1]); if (z){ updateColor(z); window.setTimeout(function(){GM_setValue("kong_timestampcolor", z);}, 0); l.activeDialogue().displayMessage("Timestamp", "Set font-color to "+z, { "class": "whisper received_whisper"}, {non_user: true}); } else { l.activeDialogue().displayMessage("Timestamp", "No valid color! Format is /hlcolor ###### (# = hex character)", {"class":"whisper received_whisper"}, {non_user: true}) } return false; }); holodeck.addChatCommand("toggleseconds", function(l,n){ if(l._showSeconds){ l._showSeconds = 0; l.activeDialogue().displayMessage("Timestamp", "Now hiding seconds", { "class": "whisper received_whisper"}, {non_user: true}); }else{ l._showSeconds = 1; l.activeDialogue().displayMessage("Timestamp", "Now showing seconds", { "class": "whisper received_whisper"}, {non_user: true}) } window.setTimeout(function(){GM_setValue("kong_timeshowseconds", l._showSeconds);}, 0); return false; }); var timeformat = 12, fontcolor = "#999999", seconds = 0; if(typeof GM_setValue !== "function"){ GM_getValue = GM_setValue = function(){}; } else { timeformat = GM_getValue("kong_timeformat", 12)||12; fontcolor = GM_getValue("kong_timestampcolor", "#999999")||"#999999"; seconds = GM_getValue("kong_timeshowseconds", 0)||0; } holodeck._timeFormat = timeformat; holodeck._showSeconds = seconds; var updateColor = (function(c){ var style = document.createElement("style"); style.setAttribute("type", "text/css"); function _updateColor(color){ style.innerHTML = "span.inline_timestamp { color: " + color + " !important; }"; }; _updateColor(c); document.body.appendChild(style); return _updateColor; })(fontcolor); ChatDialogue.MESSAGE_TEMPLATE.template = '<p class="#{classNames}"><span style="float: left;" class="inline_timestamp">[#{time}] </span><span username="#{username}" class="username #{userClassNames}">#{prefix}#{username}</span><span class="separator">: </span><span class="message">#{message}</span><span class="clear"></span></p>' ChatDialogue.MESSAGE_TEMPLATE.old_evaluate_inline = ChatDialogue.MESSAGE_TEMPLATE.evaluate; ChatDialogue.MESSAGE_TEMPLATE.evaluate = function(args){ var date = new Date(); var hours = date.getHours(); var minutes = date.getMinutes(); var seconds = date.getSeconds(); var time; if (holodeck._timeFormat == 12){ time = (hours<10?(hours==0?"12":"0"+hours):(hours>12?(hours>21?hours-12:"0"+(hours-12)):hours))+":"+(minutes<10?"0":"")+minutes+(holodeck._showSeconds?(":"+(seconds<10?"0":"")+seconds):"")+(hours>11?" PM":" AM"); } else { time = (hours<10?"0":"")+hours+":"+(minutes<10?"0":"")+minutes+(holodeck._showSeconds?(":"+(seconds<10?"0":"")+seconds):""); } args.time = time; return this.old_evaluate_inline(args); }; } } }; function check(){ dom.injectScript = dom.injectScript||(document.getElementById("injectScriptDiv")?document.getElementById("injectScriptDiv").onclick():0); if(dom.injectScript){ dom.injectScript(init_chatTimestamp, 0); } else if(!dom._promptedFramework && !/Chrome/i.test(navigator.appVersion)){ if(confirm("You don't have the latest version of the framework-script!\n" + "Please install it, otherwise the scripts won't work.\n" + "Clicking ok will open a new tab where you can install the script")) window.open("http://userscripts.org/scripts/show/54245", "_blank"); dom._promptedFramework = true; } } setTimeout(check, 0);