1 |
|
//---PACKAGE DECLARATION--- |
2 |
< |
package uk.ac.ukc.iscream.client.alerters; |
2 |
> |
package uk.org.iscream.client.alerters; |
3 |
|
|
4 |
|
//---IMPORTS--- |
5 |
< |
import uk.ac.ukc.iscream.client.*; |
6 |
< |
import uk.ac.ukc.iscream.core.*; |
7 |
< |
import uk.ac.ukc.iscream.util.*; |
8 |
< |
import uk.ac.ukc.iscream.componentmanager.*; |
5 |
> |
import uk.org.iscream.client.*; |
6 |
> |
import uk.org.iscream.core.*; |
7 |
> |
import uk.org.iscream.util.*; |
8 |
> |
import uk.org.iscream.componentmanager.*; |
9 |
|
|
10 |
|
import java.io.*; |
11 |
|
import java.net.*; |
52 |
|
|
53 |
|
// connect to the IRC server |
54 |
|
_ircbot = new IRCBot(); |
55 |
+ |
// set it's name and start it |
56 |
+ |
_ircbot.setName("client.IRC__Alerter$IRCBot"); |
57 |
|
_ircbot.start(); |
58 |
|
_startTime = System.currentTimeMillis(); |
59 |
|
|
79 |
|
if(((alert.getLevel() == 0) && (alert.getLastLevel() >= level)) || (alert.getLevel() >= level)) { |
80 |
|
String alertType = Alert.alertLevels[alert.getLevel()]; |
81 |
|
String thresholdType = Alert.thresholdLevels[alert.getThreshold()]; |
82 |
+ |
String timeFirstSince = DateUtils.formatTime(System.currentTimeMillis() - alert.getInitialAlertTime(), "%DAYS% days, %HOURS% hours, %MINS% mins, and %SECS% secs"); |
83 |
+ |
String timeFirstOccured = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT, Locale.UK).format(new Date(alert.getInitialAlertTime())); |
84 |
|
// sort out the message |
85 |
|
String message; |
86 |
|
try { |
97 |
|
message = StringUtils.replaceText(message, "%thresholdValue%", alert.getThresholdValue()); |
98 |
|
message = StringUtils.replaceText(message, "%attributeName%", alert.getAttributeName()); |
99 |
|
message = StringUtils.replaceText(message, "%timeTillNextAlert%", getTimeString(Long.parseLong(alert.getTimeTillNextAlert()))); |
100 |
+ |
message = StringUtils.replaceText(message, "%timeSinceFirstAlert%", timeFirstSince); |
101 |
+ |
message = StringUtils.replaceText(message, "%timeOfFirstAlert%", timeFirstOccured); |
102 |
|
|
103 |
|
// send the message |
104 |
|
_logger.write(toString(), Logger.DEBUG, "Sending " + _name + " at "+ alertType + " level"); |
108 |
|
_alertCount ++; |
109 |
|
} |
110 |
|
} |
111 |
+ |
else { |
112 |
+ |
_ignoredCount ++; |
113 |
+ |
} |
114 |
|
} |
115 |
|
|
116 |
|
/** |
117 |
|
* Overrides the {@link java.lang.Object#toString() Object.toString()} |
118 |
|
* method to provide clean logging (every class should have this). |
119 |
|
* |
120 |
< |
* This uses the uk.ac.ukc.iscream.util.NameFormat class |
120 |
> |
* This uses the uk.org.iscream.util.NameFormat class |
121 |
|
* to format the toString() |
122 |
|
* |
123 |
|
* @return the name of this class and its CVS revision |
177 |
|
/** |
178 |
|
* Number of alerts sent |
179 |
|
*/ |
180 |
< |
private long _alertCount = 0; |
180 |
> |
private int _alertCount = 0; |
181 |
|
|
182 |
|
/** |
183 |
+ |
* Number of alerts ignored when in "stopped" mode |
184 |
+ |
*/ |
185 |
+ |
private int _ignoredCount = 0; |
186 |
+ |
|
187 |
+ |
/** |
188 |
|
* Time of IRCBot startup |
189 |
|
*/ |
190 |
|
private long _startTime; |
444 |
|
* Overrides the {@link java.lang.Object#toString() Object.toString()} |
445 |
|
* method to provide clean logging (every class should have this). |
446 |
|
* |
447 |
< |
* This uses the uk.ac.ukc.iscream.util.NameFormat class |
447 |
> |
* This uses the uk.org.iscream.util.NameFormat class |
448 |
|
* to format the toString() |
449 |
|
* |
450 |
|
* @return the name of this class and its CVS revision |
565 |
|
sendPrivMsg(getMsgSender(line), helpCommand); |
566 |
|
} |
567 |
|
else if(message.indexOf(statCommand)!=-1) { |
568 |
< |
sendMsg(getMsgSender(line)+", I have sent a total of "+_alertCount+" alerts!"); |
568 |
> |
sendMsg(getMsgSender(line)+", I have sent a total of "+_alertCount+" alerts, and ignored a total of "+_ignoredCount+"!"); |
569 |
|
} |
570 |
|
else if(message.indexOf(uptimeCommand)!=-1) { |
571 |
|
long uptime = (System.currentTimeMillis() - _startTime) / 1000; |
572 |
|
String uptimeText = DateUtils.formatTime(uptime, "%DAYS% days, %HOURS% hours, %MINS% mins, and %SECS% secs"); |
573 |
|
sendMsg(getMsgSender(line)+", I have been running for "+uptimeText); |
574 |
+ |
} |
575 |
+ |
else if(message.indexOf("ping")!=-1) { |
576 |
+ |
sendMsg("pong"); |
577 |
|
} |
578 |
|
else if(message.indexOf("do a jibble dance")!=-1) { |
579 |
|
// little joke :) |