Skip to content

Instantly share code, notes, and snippets.

@BtbN
Created September 12, 2017 15:49
Show Gist options
  • Select an option

  • Save BtbN/d435156a544952702146261bc7abb43a to your computer and use it in GitHub Desktop.

Select an option

Save BtbN/d435156a544952702146261bc7abb43a to your computer and use it in GitHub Desktop.
nameCommand.js
/*
* nameCommand.js
*
* This module returns a random name that was active in the last 10 minutes
*/
(function() {
var ACTIVITY_DELAY_TIME_MS = 10 * 60 * 1000;
$.bind('ircChannelMessage', function(event) {
var sender = event.getSender().toLowerCase();
var time_ms = $.systemTime();
if(sender == $.botName.toLowerCase() || sender == $.channelName.toLowerCase() || sender == $.ownerName.toLowerCase())
return;
$.inidb.set('name_lastmsg', sender, time_ms);
});
$.bind('command', function(event) {
var i, command = event.getCommand();
if (command.equalsIgnoreCase('name')) {
var min_time = $.systemTime() - ACTIVITY_DELAY_TIME_MS;
var ulist = $.inidb.GetKeyList('name_lastmsg', '');
var flist = [];
for(i in ulist) {
var utime = parseInt($.inidb.get('name_lastmsg', ulist[i]));
if(utime >= min_time) {
flist.push(ulist[i]);
} else {
$.inidb.del('name_lastmsg', ulist[i]);
}
}
$.say('Random Name: ' + $.username.resolve($.randElement(flist)));
}
});
$.bind('initReady', function() {
$.registerChatCommand('./commands/nameCommand.js', 'name', 2);
});
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment