ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/i-scream/projects/cms/source/server/uk/org/iscream/cms/server/client/alerters/IRC__Alerter.java
(Generate patch)

Comparing projects/cms/source/server/uk/org/iscream/cms/server/client/alerters/IRC__Alerter.java (file contents):
Revision 1.10 by ajm, Sun Mar 4 04:43:29 2001 UTC vs.
Revision 1.11 by tdb, Sun Mar 4 05:26:00 2001 UTC

# Line 10 | Line 10 | import uk.ac.ukc.iscream.componentmanager.*;
10   import java.io.*;
11   import java.net.*;
12   import java.util.*;
13 + import java.text.*;
14  
15   /**
16   * This Alert sends an IRC message.
# Line 48 | Line 49 | public class IRC__Alerter implements PluginAlerter {
49          // connect to the IRC server
50          _ircbot = new IRCBot();
51          _ircbot.start();
52 +        _startTime = System.currentTimeMillis();
53          
54          _logger.write(toString(), Logger.SYSINIT, "IRC Alerter started");
55      }
# Line 78 | Line 80 | public class IRC__Alerter implements PluginAlerter {
80                  _logger.write(toString(), Logger.DEBUG, "Sending " + _name + " at "+ alertType + " level");
81                  _ircbot.sendMsg(message);
82                  _lastAlert = message;
83 +                _lastAlertTime = System.currentTimeMillis();
84 +                _alertCount ++;
85              }
86          }
87      }
# Line 139 | Line 143 | public class IRC__Alerter implements PluginAlerter {
143      private String _lastAlert = "no alerts have been sent";
144      
145      /**
146 +     * The time of the last alert
147 +     */
148 +    private long _lastAlertTime = -1;
149 +    
150 +    /**
151 +     * Number of alerts sent
152 +     */
153 +    private long _alertCount = 0;
154 +    
155 +    /**
156 +     * Time of IRCBot startup
157 +     */
158 +    private long _startTime;
159 +    
160 +    /**
161       * This is the friendly identifier of the
162       * component this class is running in.
163       * eg, a Filter may be called "filter1",
# Line 369 | Line 388 | public class IRC__Alerter implements PluginAlerter {
388                  _socketOut.println("PONG" + line.substring(4));
389              }
390              // see if it's for us
391 <            else if(getMsg(line).startsWith(_nickname)) {
391 >            else if(getMsg(line).startsWith(_nickname+",")
392 >                    || getMsg(line).startsWith(_nickname+":")
393 >                    || getMsg(line).startsWith(_nickname+" ")) {
394                  // we have a message for us
395                  String message = getMsg(line).substring(_nickname.length());
396                  if(message.indexOf(cp.getProperty(_name, "Alerter.IRC.stopCommand"))!=-1) {
# Line 380 | Line 401 | public class IRC__Alerter implements PluginAlerter {
401                      _active = true;
402                      sendMsg(getMsgSender(line)+", alerts have been activated");
403                  }
404 +                // this needs to go here if it contains the same words as the lastAlertCommand
405 +                else if(message.indexOf(cp.getProperty(_name, "Alerter.IRC.timeSinceLastAlertCommand"))!=-1) {
406 +                    if(_lastAlertTime != -1) {
407 +                        long uptime = (System.currentTimeMillis() - _lastAlertTime) / 1000;
408 +                        String uptimeText = DateUtils.formatTime(uptime, "%DAYS% days, %HOURS% hours, %MINS% mins, and %SECS% secs");
409 +                        sendMsg(getMsgSender(line)+", I last sent an alert "+uptimeText+ " ago");
410 +                    }
411 +                    else {
412 +                        sendMsg(getMsgSender(line)+", I've never sent an alert!");
413 +                    }
414 +                }
415                  else if(message.indexOf(cp.getProperty(_name, "Alerter.IRC.lastAlertCommand"))!=-1) {
416 <                    sendMsg(getMsgSender(line)+", last alert was: "+_lastAlert);
416 >                    if(_lastAlertTime != -1) {
417 >                        String date = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT, Locale.UK).format(new Date(_lastAlertTime));
418 >                        sendMsg(getMsgSender(line)+", last alert was at "+date+"; "+_lastAlert);
419 >                    }
420 >                    else {
421 >                        sendMsg(getMsgSender(line)+", I've never sent an alert!");
422 >                    }
423 >                    
424                  }
425                  else if(message.indexOf(cp.getProperty(_name, "Alerter.IRC.joinCommand"))!=-1) {
426                      String joinCmd = cp.getProperty(_name, "Alerter.IRC.joinCommand");
# Line 396 | Line 435 | public class IRC__Alerter implements PluginAlerter {
435                      _socketOut.println("JOIN "+newChan);
436                      _channel = newChan;
437                  }
438 +                else if(message.indexOf(cp.getProperty(_name, "Alerter.IRC.nickChangeCommand"))!=-1) {
439 +                    String nickChangeCmd = cp.getProperty(_name, "Alerter.IRC.nickChangeCommand");
440 +                    String newNick = message.substring(message.indexOf(nickChangeCmd) + nickChangeCmd.length() + 1);
441 +                    int endOfNick = newNick.indexOf(" ");
442 +                    if(endOfNick == -1) {
443 +                        endOfNick = newNick.length();
444 +                    }
445 +                    newNick = newNick.substring(0, endOfNick);
446 +                    sendMsg(getMsgSender(line)+", okay, changing my nickname to "+newNick);
447 +                    _socketOut.println("NICK "+newNick);
448 +                    _nickname = newNick;
449 +                }
450                  else if(message.indexOf(cp.getProperty(_name, "Alerter.IRC.helpCommand"))!=-1) {
451                      sendPrivMsg(getMsgSender(line), "I am the i-scream alerting bot revision "+REVISION.substring(11, REVISION.length() -2));
452                      sendPrivMsg(getMsgSender(line), "I understand the following commands;");
453                      sendPrivMsg(getMsgSender(line), cp.getProperty(_name, "Alerter.IRC.stopCommand"));
454                      sendPrivMsg(getMsgSender(line), cp.getProperty(_name, "Alerter.IRC.startCommand"));
455                      sendPrivMsg(getMsgSender(line), cp.getProperty(_name, "Alerter.IRC.lastAlertCommand"));
456 +                    sendPrivMsg(getMsgSender(line), cp.getProperty(_name, "Alerter.IRC.joinCommand"));
457 +                    sendPrivMsg(getMsgSender(line), cp.getProperty(_name, "Alerter.IRC.nickChangeCommand"));
458 +                    sendPrivMsg(getMsgSender(line), cp.getProperty(_name, "Alerter.IRC.statCommand"));
459 +                    sendPrivMsg(getMsgSender(line), cp.getProperty(_name, "Alerter.IRC.uptimeCommand"));
460 +                    sendPrivMsg(getMsgSender(line), cp.getProperty(_name, "Alerter.IRC.timeSinceLastAlertCommand"));
461 +                    sendPrivMsg(getMsgSender(line), cp.getProperty(_name, "Alerter.IRC.helpCommand"));
462 +                }
463 +                else if(message.indexOf(cp.getProperty(_name, "Alerter.IRC.statCommand"))!=-1) {
464 +                    sendMsg(getMsgSender(line)+", I have sent a total of "+_alertCount+" alerts!");
465 +                }
466 +                else if(message.indexOf(cp.getProperty(_name, "Alerter.IRC.uptimeCommand"))!=-1) {
467 +                    long uptime = (System.currentTimeMillis() - _startTime) / 1000;
468 +                    String uptimeText = DateUtils.formatTime(uptime, "%DAYS% days, %HOURS% hours, %MINS% mins, and %SECS% secs");
469 +                    sendMsg(getMsgSender(line)+", I have been running for "+uptimeText);
470                  }
471                  else if(message.indexOf("do a jibble dance")!=-1) {
472                      // little joke :)

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines