login  Naam:   Wachtwoord: 
Registreer je!
 Forum

[PERL] IRC bot

Offline Sirius - 07/04/2009 19:44
Avatar van SiriusLid Ik ben sinds kort begonnen met Perl en wou graag weten hoe ik informatie uit kan lezen van sockets.

Ik wil een IRC bot maken, en ben al zover dat er een verbinding gemaakt word en in stand blijft.
Hoe kan ik de bot reageren op dingen die er gezegd worden in channels?

6 antwoorden

Gesponsorde links
Offline ibmos2warp - 07/04/2009 19:49
Avatar van ibmos2warp PHP interesse Snap je het irc protocol?
Heb je al eens naar andere gekeken hoe die dat doen?
Offline Sirius - 07/04/2009 19:50
Avatar van Sirius Lid Ik ken het IRC protocol grotendeels uit mn hoofd heb ruim 8 jaar IRC ervaring en zelf ook een IRCd gemaakt, maar ik ben totaal onbekend in perl.
Heb wel andere perl bots gedownload en bekeken maar iedereen doet t anders dus word er niet veel wijzer van ;P
Offline Rik - 07/04/2009 19:52
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
In de IRC-bot in PHP (Sockets) tutorial wordt alles uitgelegd voor php. Als je dat kunt porten naar Perl ben je al een heel eind.  
Offline Sirius - 07/04/2009 19:57
Avatar van Sirius Lid Zo ver was ik :>
$line is de output, de hele output.
Ik wil bijvoorbeeld alleen de 4e of 6e woorden weten van de output 

  1. while($line = <$socket>) {
  2. chop $line;
  3. if ($line =~ /^PING(.*)$/i) {
  4. print $socket "PONG $1\r\n";
  5. print "$line\n";
  6. }
  7. if ($line =~ /PRIVMSG(.*)$/i) {
  8. print "PRIVMSG $1\n";
  9. }
  10. print "$line\n";
  11. }
Offline Rik - 07/04/2009 20:32
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Ik kan perl eigenlijk alleen een klein beetje lezen, maar met de substr functie kun je een stukje uit de regel halen.
Offline Sirius - 07/04/2009 21:06 (laatste wijziging 07/04/2009 21:08)
Avatar van Sirius Lid Daarbij moet je eerst de lengte van de tekst weten.
Ik was al op zoek naar een manier om door middel van spatie tekens woorden te scheiden.

Dit is de output als ik wat zeg:
Citaat:
:Sirius!unknown@CN-286D48B.cable.quicknet.nl PRIVMSG #Perl :.kick Sirius


Daar wil ik parameter 3 (dus #Perl) vastleggen in $chan en vanaf de 4e parameter checken of de commando's matchen
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.192s