Einfaches Twitter-Tool gebaut.

Ein ganz simples Tool zum Absetzen von Tweets und sonst
nix.
Benutzbar nur fuer die in twitter.c nutzungsberechtigten UIDs.

Change-Id: I1a9688fb147c63ea3f10dfedde808889de3e6432
diff --git a/secure/misc/twitter_tool.c b/secure/misc/twitter_tool.c
new file mode 100644
index 0000000..5b31e91
--- /dev/null
+++ b/secure/misc/twitter_tool.c
@@ -0,0 +1,63 @@
+#pragma no_shadow, no_inherit
+#pragma strong_types,save_types,rtt_checks
+#pragma pedantic,range_check,warn_deprecated
+#pragma warn_empty_casts,warn_missing_return,warn_function_inconsistent
+
+inherit "/std/secure_thing";
+
+#include <properties.h>
+#include <defines.h>
+
+#define BS(x) break_string(x,78,0,BS_LEAVE_MY_LFS)
+#define BSI(x, y) break_string(x, 78, y, BS_LEAVE_MY_LFS|BS_INDENT_ONCE)
+
+protected void create()
+{
+  ::create();
+  SetProp(P_NAME,"Twitter-Tool");
+  SetProp(P_AUTOLOADOBJ,1);
+  SetProp(P_NODROP,1);
+  SetProp(P_NEVERDROP,1);
+  SetProp(P_WEIGHT, 0);
+  AddId(({"ttool","twittertool","twitter-tool"}));
+  SetProp(P_SHORT,"Ein Twitter-Tool");
+  SetProp(P_LONG,
+    BS("Dies ist das Twitter-Tool zum Senden von Tweets aus dem MG.")+
+    BS("\nEs versteht folgende Befehle:")+
+    BSI("tweet <msg>:\nSendet den Text <msg> als Tweet des MG auf Twitter.","- ")+
+    BS("Das Senden erfolgt asynchron, kann also einige Sekunden dauern und "
+       "leider kann das Tool keinen Erfolg oder Misserfolg melden."));
+  AddCmd("tweet",
+    function int(string str)
+    {
+      notify_fail("Du solltest zumindest ein paar Buchstaben senden...\n");
+      str = PL->_unparsed_args(0);
+      if(!sizeof(str))
+        return 0;
+      "/secure/misc/twitter"->twitter(str);
+      this_interactive()->ReceiveMsg(
+        BS(sprintf("Tweet \'%s\' wird gesendet.",str)),
+        MT_NOTIFICATION|MSG_BS_LEAVE_LFS);
+      return 1;
+    });
+}
+
+protected void NotifyMove(object dest, object oldenv, int method)
+{
+  ::NotifyMove(dest, oldenv, method);
+  // Nur die Personen erlauben, die auch im Twitter-Daemon erlaubt sind.
+  if ("/secure/misc/twitter"->tool_allowed(dest) != 1)
+  {
+    remove(1);
+  }
+}
+
+protected int PreventMove(object dest, object oldenv, int method)
+{
+  // Nur die Personen erlauben, die auch im Twitter-Daemon erlaubt sind.
+  if ("/secure/misc/twitter"->tool_allowed(dest) != 1)
+    return ME_NOT_ALLOWED;
+
+  return ::PreventMove(dest, oldenv, method);
+}
+