Zesstra | 688468d | 2020-01-08 21:27:53 +0100 | [diff] [blame] | 1 | #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 | |
| 6 | inherit "/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 | |
| 14 | protected 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; |
Zesstra | 2310c27 | 2022-10-05 23:51:58 +0200 | [diff] [blame] | 37 | |
| 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); |
Zesstra | 688468d | 2020-01-08 21:27:53 +0100 | [diff] [blame] | 44 | return 1; |
| 45 | }); |
| 46 | } |
| 47 | |
| 48 | protected 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 | |
| 58 | protected 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 | |