blob: 22b0b366842e2c679fef413ff19dd84f1442fcfd [file] [log] [blame]
Zesstra688468d2020-01-08 21:27:53 +01001#pragma no_shadow, no_inherit
2#pragma strong_types,save_types,rtt_checks
3#pragma pedantic,range_check,warn_deprecated
4#pragma warn_empty_casts,warn_missing_return,warn_function_inconsistent
5
6inherit "/std/secure_thing";
7
8#include <properties.h>
9#include <defines.h>
10
11#define BS(x) break_string(x,78,0,BS_LEAVE_MY_LFS)
12#define BSI(x, y) break_string(x, 78, y, BS_LEAVE_MY_LFS|BS_INDENT_ONCE)
13
14protected void create()
15{
16 ::create();
17 SetProp(P_NAME,"Twitter-Tool");
18 SetProp(P_AUTOLOADOBJ,1);
19 SetProp(P_NODROP,1);
20 SetProp(P_NEVERDROP,1);
21 SetProp(P_WEIGHT, 0);
22 AddId(({"ttool","twittertool","twitter-tool"}));
23 SetProp(P_SHORT,"Ein Twitter-Tool");
24 SetProp(P_LONG,
25 BS("Dies ist das Twitter-Tool zum Senden von Tweets aus dem MG.")+
26 BS("\nEs versteht folgende Befehle:")+
27 BSI("tweet <msg>:\nSendet den Text <msg> als Tweet des MG auf Twitter.","- ")+
28 BS("Das Senden erfolgt asynchron, kann also einige Sekunden dauern und "
29 "leider kann das Tool keinen Erfolg oder Misserfolg melden."));
30 AddCmd("tweet",
31 function int(string str)
32 {
33 notify_fail("Du solltest zumindest ein paar Buchstaben senden...\n");
34 str = PL->_unparsed_args(0);
35 if(!sizeof(str))
36 return 0;
Zesstra2310c272022-10-05 23:51:58 +020037
38 // Der Twitter-Relay gibt Fehlermeldungen selbst aus, d.h. nur bei
39 // Erfolg muessen wir selber etwas ausgeben.
40 if ("/secure/misc/twitter"->twitter(str))
41 this_interactive()->ReceiveMsg(
42 BS(sprintf("Tweet \'%s\' wird gesendet.",str)),
43 MT_NOTIFICATION|MSG_BS_LEAVE_LFS);
Zesstra688468d2020-01-08 21:27:53 +010044 return 1;
45 });
46}
47
48protected void NotifyMove(object dest, object oldenv, int method)
49{
50 ::NotifyMove(dest, oldenv, method);
51 // Nur die Personen erlauben, die auch im Twitter-Daemon erlaubt sind.
52 if ("/secure/misc/twitter"->tool_allowed(dest) != 1)
53 {
54 remove(1);
55 }
56}
57
58protected int PreventMove(object dest, object oldenv, int method)
59{
60 // Nur die Personen erlauben, die auch im Twitter-Daemon erlaubt sind.
61 if ("/secure/misc/twitter"->tool_allowed(dest) != 1)
62 return ME_NOT_ALLOWED;
63
64 return ::PreventMove(dest, oldenv, method);
65}
66