]> jfr.im git - irc/rizon/bncbot.git/commitdiff
Add another shortcut command to find unprocessed entries.
authorNol888 <redacted>
Wed, 8 Aug 2012 18:46:23 +0000 (14:46 -0400)
committerNol888 <redacted>
Wed, 8 Aug 2012 18:46:23 +0000 (14:46 -0400)
src/net/rizon/bncbot/CommandManager.java
src/net/rizon/bncbot/commands/BncNotProcessedCmd.java [new file with mode: 0644]

index 0155243176fda16874597087e6ac42f8642f9fb9..cc219f068b6a664838b85416698968a12fd12cc7 100644 (file)
@@ -35,7 +35,7 @@ public final class CommandManager {
                handlers.put(".bs", handlers.get(".bncsuspend"));\r
                handlers.put(".bus", handlers.get(".bncsuspend"));\r
                handlers.put(".bnclistsuspend", new BncListSuspendCmd());\r
-               \r
+\r
                handlers.put(".bncadd", new BncAddCmd());\r
 \r
                handlers.put(".bncmove", new BncMoveCmd());\r
@@ -49,11 +49,12 @@ public final class CommandManager {
                handlers.put(".bncsearch", handlers.get(".bncfind"));\r
                handlers.put(".bnclastseen", new BncLastSeenCmd());\r
                handlers.put(".bncls", handlers.get(".bnclastseen"));\r
+               handlers.put(".bp", new BncNotProcessedCmd());\r
                handlers.put(".bncabout", new BncAboutCmd());\r
                handlers.put(".bncoverride", new BncGenerateOverrideCmd());\r
                handlers.put(".bncrehash", new BncRehashCmd());\r
                handlers.put(".bnchelp", new BncHelpCmd());\r
-               \r
+\r
                handlers.put(".bncloadmod", new BncLoadModCmd());\r
                handlers.put(".bncunloadmod", handlers.get(".bncloadmod"));\r
 \r
diff --git a/src/net/rizon/bncbot/commands/BncNotProcessedCmd.java b/src/net/rizon/bncbot/commands/BncNotProcessedCmd.java
new file mode 100644 (file)
index 0000000..b853e18
--- /dev/null
@@ -0,0 +1,41 @@
+package net.rizon.bncbot.commands;\r
+\r
+import java.util.ArrayList;\r
+\r
+import net.rizon.bncbot.AbstractSimpleCommand;\r
+import net.rizon.bncbot.UserDB.UserEntry;\r
+import net.rizon.bncbot.UserDB.UserEntry.UserState;\r
+\r
+public class BncNotProcessedCmd extends AbstractSimpleCommand {\r
+       @Override\r
+       public boolean prepare(String line) {\r
+               super.prepare(line);\r
+\r
+               // We want the message to look like this:\r
+               // :nick!ident@host PRIVMSG #adminchan :command\r
+               // 0                1       2          3\r
+               return args[2].equalsIgnoreCase(bot.getAdminChannel());\r
+       }\r
+\r
+       public void run() {\r
+               ArrayList<UserEntry> matches = new ArrayList<UserEntry>();\r
+               for (UserEntry ue : bot.database)\r
+                       if (ue.getState() == UserState.NotProcessed)\r
+                               matches.add(ue);\r
+\r
+               bot.privmsg(bot.getAdminChannel(), bot.getString("adminQueryMatch", matches.size(), "processed=false"));\r
+               if (matches.size() > 0) {\r
+                       StringBuilder sb = new StringBuilder();\r
+                       for (UserEntry ue : matches) {\r
+                               sb.append(ue.getNick() + " (Id: " + ue.getId() + "), ");\r
+                       }\r
+\r
+                       if (sb.length() > 200) {\r
+                               bot.privmsg(bot.getAdminChannel(), "Exceeded length limit, response sent via notice.");\r
+                               bot.notice(args[0].substring(1).split("!")[0], sb.toString().substring(0, sb.length() - 2));\r
+                       } else {\r
+                               bot.privmsg(bot.getAdminChannel(), sb.toString().substring(0, sb.length() - 2));\r
+                       }\r
+               }\r
+       }\r
+}\r