package core;
import de.skuzzle.polly.sdk.eventlistener.ChannelEvent;
import de.skuzzle.polly.sdk.eventlistener.JoinPartListener;
import de.skuzzle.polly.sdk.eventlistener.MessageEvent;
import de.skuzzle.polly.sdk.eventlistener.MessageListener;
import de.skuzzle.polly.sdk.eventlistener.NickChangeEvent;
import de.skuzzle.polly.sdk.eventlistener.NickChangeListener;
import de.skuzzle.polly.sdk.eventlistener.QuitEvent;
import de.skuzzle.polly.sdk.eventlistener.QuitListener;
import de.skuzzle.polly.sdk.exceptions.DatabaseException;
import de.skuzzle.polly.sdk.time.Time;
import entities.LogEntry;
public class IrcLogCollector implements
MessageListener, JoinPartListener, QuitListener, NickChangeListener {
private PollyLoggingManager logManager;
public IrcLogCollector(PollyLoggingManager logManager) {
this.logManager = logManager;
}
@Override
public void nickChanged(NickChangeEvent e) {
try {
this.logManager.logMessage(LogEntry.forNickChange(
e.getOldUser().getNickName(),
e.toString(), "", Time.currentTime())); //$NON-NLS-1$
} catch (DatabaseException e1) {
this.onDatabaseException(e1);
}
}
@Override
public void quited(QuitEvent e) {
try {
this.logManager.logMessage(LogEntry.forQuit(
e.getUser().getNickName(), e.toString(), "", Time.currentTime())); //$NON-NLS-1$
} catch (DatabaseException e1) {
this.onDatabaseException(e1);
}
}
@Override
public void channelJoined(ChannelEvent e) {
try {
this.logManager.logMessage(LogEntry.forJoin(
e.getUser().getNickName(),"*** JOIN " + e.toString(), //$NON-NLS-1$
e.getChannel(), Time.currentTime()));
} catch (DatabaseException e1) {
this.onDatabaseException(e1);
}
}
@Override
public void channelParted(ChannelEvent e) {
try {
this.logManager.logMessage(LogEntry.forPart(
e.getUser().getNickName(), "*** PART " + e.toString(), //$NON-NLS-1$
e.getChannel(), Time.currentTime()));
} catch (DatabaseException e1) {
this.onDatabaseException(e1);
}
}
@Override
public void publicMessage(MessageEvent e) {
try {
this.logManager.logMessage(LogEntry.forMessage(
e.getUser().getNickName(),
e.getMessage(), e.getChannel(), Time.currentTime()));
} catch (DatabaseException e1) {
this.onDatabaseException(e1);
}
}
@Override
public void privateMessage(MessageEvent ignore) {
// do not log messages in query
}
@Override
public void actionMessage(MessageEvent ignore) {
// do not log action messages
}
private void onDatabaseException(DatabaseException e) {
e.printStackTrace();
}
@Override
public void noticeMessage(MessageEvent ignore) {}
}