Skip to content

Commit

Permalink
Tidyup and added !help
Browse files Browse the repository at this point in the history
  • Loading branch information
mex committed Oct 21, 2010
1 parent e6589a7 commit b686716
Showing 1 changed file with 69 additions and 51 deletions.
120 changes: 69 additions & 51 deletions Factoids/src/Factoids/Factoids.java
Expand Up @@ -13,48 +13,58 @@ public class Factoids extends DefaultPlugin {
private static final Logger log = Logger.getLogger(Factoids.class.toString());
private final ObjectContainer database;

private static final String COMMAND_ADD = "!addfact";
private static final String COMMAND_SET = "!setfact";
private static final String COMMAND_ADD = "!set";
private static final String COMMAND_SET = "!setreply";

public Factoids() {
database = Db4o.openFile("Facts.db4o");
}

@Override
public void onMessage(String channel, String sender, String login,
String hostname, String message) {
public void load() {
bot.addCommand(COMMAND_ADD, this);
bot.addCommand(COMMAND_SET, this);
}

@Override
public void onMessage(String channel, String sender, String login, String hostname,
String message) {

String[] messageSplit = message.split(" ");
if (message.startsWith("?") && message.split(" ").length == 1) {
Fact proto = new Fact(message.toLowerCase().substring(1), null,
null, null, true);
ObjectSet<Fact> facts = database.get(proto);
if (facts.size() > 0) {
bot.Message(channel, sender + ": " + facts.get(0));
if (message.equals("?")) {
// don't do anything
} else {
bot.Message(channel, sender + ": Sorry I do not know about that");
Fact proto = new Fact(message.toLowerCase().substring(1), null, null, null, true);
ObjectSet<Fact> facts = database.get(proto);
if (facts.size() > 0) {
bot.Message(channel, sender + ": " + facts.get(0));
} else {
bot.Message(channel, sender + ": Sorry I do not know about that");
}
}
} else if (messageSplit.length >= 3
&& messageSplit[0].equals(COMMAND_ADD)) {
String factString = messageSplit[1].toLowerCase();
String factMessage = factString;
String tmpMessage = message.substring(messageSplit[0].length()
+ messageSplit[1].length() + 1);
log.info("tmpMessage =\"" + tmpMessage + "\"" );
String trimmedTmpMessage = tmpMessage.trim();
log.info("trimmedtmpMessage =\"" + trimmedTmpMessage + "\"" );

if (trimmedTmpMessage.startsWith("is ")) {
log.info("message already has is so not adding one");
factMessage += " " + tmpMessage.trim();
}
}

private void proccessAdd(String message, String sender, String channel) {
String[] messageSplit = message.split(" ");
if (messageSplit.length < 2) {
bot.sendMessage(channel, sender + ": not enough pareters set");
} else {

String factString = messageSplit[0].toLowerCase();
String factMessage;

if (messageSplit[1].trim().equals("is")) {
factMessage = message.trim();
} else {
log.info("message doesn't have an in so adding one!");
factMessage += " is " + tmpMessage.trim();
StringBuilder sb = new StringBuilder(message.trim());
sb.insert(messageSplit[0].length(), " is ");
factMessage = sb.toString();
}

String factSetBy = sender;
Date factDate = new Date();
Fact fact = new Fact(factString, factMessage, factSetBy, factDate,
true);
Fact fact = new Fact(factString, factMessage, factSetBy, factDate, true);

Fact proto = new Fact(factString, null, null, null, true);
ObjectSet<Fact> set = database.get(proto);
Expand All @@ -65,42 +75,50 @@ public void onMessage(String channel, String sender, String login,
database.set(fact);
database.commit();
bot.sendMessage(channel, sender + ": Stored, thanks.");
}
}

} else if (messageSplit.length >= 3
&& messageSplit[0].equals(COMMAND_SET)) {
String factString = messageSplit[1].toLowerCase();
String factMessage = message.substring(messageSplit[0].length()
+ messageSplit[1].length() + 1);
private void proccessSet(String message, String channel, String sender) {
String[] messageSplit = message.split(" ");
String factString = messageSplit[0].toLowerCase();
String factMessage = message.substring(messageSplit[0].length()).trim();

String factSetBy = sender;
Date factDate = new Date();
Fact fact = new Fact(factString, factMessage, factSetBy, factDate, true);

Fact proto = new Fact(factString, null, null, null, true);
ObjectSet<Fact> set = database.get(proto);
for (Fact old : set) {
old.setOld();
database.set(old);
}

String factSetBy = sender;
Date factDate = new Date();
Fact fact = new Fact(factString, factMessage, factSetBy, factDate,
true);
database.set(fact);
database.commit();
bot.sendMessage(channel, sender + ": Stored, thanks.");

Fact proto = new Fact(factString, null, null, null, true);
ObjectSet<Fact> set = database.get(proto);
for (Fact old : set) {
old.setOld();
database.set(old);
}

}

database.set(fact);
database.commit();
bot.sendMessage(channel, sender + ": Stored, thanks.");
@Override
public void onCommand(String command, String channel, String sender, String login,
String hostname, String message) {
if (command.equals(COMMAND_ADD)) {
proccessAdd(message, sender, channel);
} else if (command.equals(COMMAND_SET)) {
proccessSet(message, channel, sender);
}

}

@Override
public String getHelp() {
// TODO Auto-generated method stub
return null;
return "Use " + COMMAND_ADD + "<fact> is <message> to set a factoid. Use " + COMMAND_SET
+ "<fact> <message> to set a literal reply to a factoid.";
}

@Override
public void unload() {
database.close();
}

}

0 comments on commit b686716

Please sign in to comment.