package org.manalith.ircbot.plugin.dictionary;
import java.util.Date;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.time.DateFormatUtils;
import org.manalith.ircbot.ManalithBot;
import org.manalith.ircbot.command.CommandParser;
import org.manalith.ircbot.plugin.SimplePlugin;
import org.manalith.ircbot.resources.MessageEvent;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
public class DictionaryPlugin extends SimplePlugin {
@Autowired
private WordDao wordDao;
@Override
public String getName() {
return "FAQ";
}
@Override
public String getCommands() {
return "배워";
}
@Override
public String getHelp() {
return "사용법 : 배워 [단어] [해석]";
}
@Override
public void onMessage(MessageEvent event) {
ManalithBot bot = event.getBot();
String message = event.getMessage();
String sender = event.getUser().getNick();
String cmd = CommandParser.checkMessageAndRemoveNick(bot.getNick(),
message);
if (cmd != null) {
// TODO 랜덤 응답 기능을 별도 플러그인으로 추출할 것
if (cmd.equals("그치?")) {
if (((int) (Math.random() * 10)) % 2 == 0)
event.respond("응응!");
else
event.respond("(먼산)");
} else {
Word w = null;
if (cmd.startsWith("배워 ")) {
String[] arr = cmd.split(" ");
if (arr.length >= 3) {
w = new Word();
w.word = arr[1];
if (arr.length > 3)
w.description = StringUtils.join(arr, ' ', 2,
arr.length);
else
w.description = arr[2];
w.author = sender;
w.date = new Date();
wordDao.save(w);
event.respond("단어를 배웠습니다.");
} else {
event.respond(getHelp());
}
} else if ((w = wordDao.findByWord(cmd)) != null) {
event.respond(String.format("[%s] %s -%s(%s) ", w.word,
w.description, w.author,
DateFormatUtils.format(w.date, "yyyy-MM-dd")));
} else {
event.respond("(먼산)");
}
}
}
}
}