Hoću da napravim da bot proverava šta je napisano na nekom kanalu, i ako je napisana neka određena reč, da bot izvrši nešto...
Ovako izgleda text koji server šalje korisniku (botu):
Code:
:[email protected] PRIVMSG #neki_kanal:neki text
:[email protected] PRIVMSG #neki_kanal:neki text
Našao sam na netu sledeći kôd:
Code:
$answer =~ m/^\:(.*?)\!(.*?)\@(.*?) PRIVMSG (.*?) :(.*?)$/;
$xnick = $1;
$xident = $2;
$xhost = $3;
$xchannel = $4;
$xtext = $5;
$answer =~ m/^\:(.*?)\!(.*?)\@(.*?) PRIVMSG (.*?) :(.*?)$/;
$xnick = $1;
$xident = $2;
$xhost = $3;
$xchannel = $4;
$xtext = $5;
I u onom primeru gore, to bi izgledalo ovako:
Code:
$xnick = "nickname";
$xident = "ident";
$xhost = "hostname.com";
$xchannel = "#neki_kanal";
$xtext = "neki text";
$xnick = "nickname";
$xident = "ident";
$xhost = "hostname.com";
$xchannel = "#neki_kanal";
$xtext = "neki text";
Sada hoću da napišem da bot proverava neku od ovih vrednosti (na primer, $xtext):
Code:
if($xtext eq "test") {
print $con "privmsg $xchannel :true\n";
} else {
print $con "privmsg $xchannel :false\n";
}
Ovaj kôd mi uvek vraća false, iako se napiše na IRC-u test.if($xtext eq "test") {
print $con "privmsg $xchannel :true\n";
} else {
print $con "privmsg $xchannel :false\n";
}
Kada uradim:
Code:
print "$xtext";
Normalno se ispisuje test, znači da nije dobar if..print "$xtext";
Takođe sam probao:
Code:
if($xtext =~ m/^test$/)
I ovo ne radi lepo.if($xtext =~ m/^test$/)
Gde grešim, i da li ovo uopšte može da se izvede ovako?
Ako sam malo nejasno napisao sve ovo, slobodno pitajte da pojasnim ;)
p0z
p.s. @moderatori, slobodno promenite topic ako nađete nešto prikladnije...