1717use Config::IniFiles; # From CPAN
1818use LWP::Simple; # From CPAN
1919use JSON qw( decode_json ) ; # From CPAN
20+ use Switch;
2021use vars qw( $VERSION %IRSSI) ;
2122$VERSION = " 1.0" ;
2223%IRSSI = (
3132# # important global Variables:
3233# For the IRC:
3334our $main_channel = " see-base|ponyville" ; # Use '|' for multiple channels
34- our $keyword = " space" ;
35- our $open = " open" ; # to change state to open
36- our $closed = " closed" ; # to change state to closed
35+ our @keyword = (" space" , " see-base" , " toolbox" ); # First parameter is a for the default space!
36+ our @open = (" $keyword [0] open|$keyword [1] open" , " $keyword [2] open" ); # to change state to open
37+ our @closed = (" $keyword [0] closed|$keyword [1] closed" , " $keyword [2] closed" ); # to change state to closed
38+ our @show = (" $keyword [0]|$keyword [1]" , " $keyword [2]" );
3739# Global Parameters:
3840our $url = " https://bodensee.space/cgi-bin/togglestate?" ;
3941
@@ -48,26 +50,49 @@ sub sig_message_public {
4850 my ($server , $msg , $nick , $nick_addr , $target ) = @_ ;
4951 if ($target =~ m / #(?:$main_channel )/ ) { # only operate in these channels
5052 # listen to keyword to do something:
51- if ($msg =~ m / !(?:$keyword $open )/ i ){ # listening for "!$keyword"
52- my $openurl = " $url " ;
53- $server -> command(" msg $target Hey $nick , du wolltest den Space auf 'offen' stellen." );
54- }elsif ($msg =~ m / !(?:$keyword $closed )/ i ){ # listening for "!$keyword"
55- $server -> command(" msg $target Hey $nick , du wolltest den Space auf 'geschlossen' stellen." );
56- }elsif ($msg =~ m / !(?:$keyword )/ i ){ # listening for "!$keyword"
57- $server -> command(" msg $target Hey $nick , du wolltest den Status des Space rausfinden!" );
53+ my $int = 0;
54+ foreach (@open ){
55+ if ($msg =~ m / !(?:$open [$int ])/ i ){ # listening for "!$keyword open"
56+ my $answer = space(" open" , $keyword [$int +1]);
57+ $server -> command(" msg $target Hey $nick , $answer ." );
58+ }elsif ($msg =~ m / !(?:$closed [$int ])/ i ){ # listening for "!$keyword closed"
59+ my $answer = space(" closed" , $keyword [$int +1]);
60+ $server -> command(" msg $target Hey $nick , $answer ." );
61+ }elsif ($msg =~ m / !(?:$show [$int ])/ i ){ # listening for "!$keyword"
62+ my $answer = space(" show" , $keyword [$int +1]);
63+ $server -> command(" msg $target Hey $nick , $answer " );
64+ }
65+ $int ++;
5866 }
5967 }
6068 $server -> command(" /script load spaceapibot.pl" );
6169}
6270
6371sub space {
72+ my $parameter = $_ [0];
73+ my $param2 = $_ [1];
6474 my $anz = $ini -> val(' spaces' , ' anzahl' );
6575 my @spaces = [];
76+ my @token = [];
6677 for (my $i = 0; $i < $anz ; $i ++) {
6778 push (@spaces , $ini -> val(' spaces' , " space_$i " ));
68- }
69- print $spaces [1];
70-
79+ push (@token , $ini -> val(' token' , " space_$i " ));
80+ }
81+ for (my $i = 0; $i < $anz ; $i ++) {
82+ if ($spaces [$i ] eq $param2 ){
83+ if ($parameter eq " open" ) {
84+ my $link = " $url$spaces [$i ]&token=$token [$i ]&state=$parameter " ;
85+ return " try to open" ;
86+ }
87+ elsif ($parameter eq " closed" ) {
88+ return " try to close" ;
89+ }
90+ elsif ($parameter eq " show" ) {
91+ return " try to show state" ;
92+ }
93+ else { return " Error: Ungueltige Parameteruebergabe" ; }
94+ }
95+ }
96+ return " foo" ;
7197}
7298
73- space();
0 commit comments