Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi IRC BOT Source (https://www.delphipraxis.net/46052-irc-bot-source.html)

CodenameCookie 17. Mai 2005 15:23


IRC BOT Source
 
Hallöchen DP Community :-D ,
da ich mich grad ins Delphi reinwurschtel interessiert es mich wie ein IRCBOT/CLIENT aufgebaut ist .
Da ich mir dies nur angucken möchte und den Source nicht so übernehmen will, frage ich ma ob jemand weiß wo ich ein Source für einen IRC BOT/CLIENT herbekomme :) .


Grüsse CC :thumb:

Phoenix 17. Mai 2005 15:25

Re: IRC BOT Source
 
Also mit Delphi-Source kann ich Dir nicht dienen, aber der bekannteste IRC-Bot, der Eggdrop, der ist open Source. Guckst Du einfach mal hier.

Spessi 18. Mai 2005 02:42

Re: IRC BOT Source
 
Hallo
wenn du Indy benutzt, hat das ne extra Komponente, für den Verbindungsaufbau in den IRC.

Hm.. Jetzt ist eh halb 4 und mir ist langweilig, naja, bastel ich eben kurz was zusammen:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
IdIRC1.Nick:='Dein-Nick';  // Legt den Nick fest
IdIRC1.Host:='127.0.0.1';  // Gibt den Server an
IdIRC1.Port:=6667;         // Der Port vom Server
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
IdIRC1.Connect();  { Hier wird eben die Verbindung zum Server hergestellt werden. (Zwischen die () kann noch eine TimeOut-Zeit, damit er weiß, nach wieviel (ich glaube es sind:) Milisek. er aufhören soll zu verbinden }
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
IdIRC1.Join('#Lobby'); // Raum, den er betreten soll
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
IdIRC1.Say('#Lobby',Edit1.Text);  // Jetzt schreibt er den Text von dem Edit Feld in den Chan #Lobby
end;
Ist jetzt ungetestet, aber müsste normal funktionieren.. Du musst eben nur ne TIdIRC-Kompo auf dein Projekt ziehen.
Das ganze kann man noch ausbauen, indem man einbaut, dass er für jeden neuen Channel ne eigene ChildForm anlegt, je in einem neuen Tab (heißt doch ChildForm oder? Schon lange nix mehr in Delphi gemacht, erst vor kurzem wieder angefangen). Dann noch das übliche: Farbanzeige, den Text, der im Channel angezeigt wird (ich sage nur OnMessage) und und und :) Für nen Bot würd ich aber lieber die mIRC-Scripting-Language nehmen, ist für nen Bot einfacher...

Also in diesem Sinne (.... in die Rinne ;) )
Spessi

sECuRE 18. Mai 2005 06:51

Re: IRC BOT Source
 
Hi,

für 'nen Bot würde ich 'ne Connect-Procedure machen, die erstens beim Start oder auf Knopfdruck aufgerufen wird und zweitens, wenn der Bot die Verbindung verliert. Dann brauchst du eine Procedure, die dauernd vom Socket liest (in dem Falle Indy, ansonsten TClientSocket, bei dem hat man dafür einen Event -> viel praktischer IMO) und die Ereignisse behandelt (das IRC-RFC ist dazu sehr hilfreich), z.B. auf Text reagiert. Außerdem musst du beim Verbinden eine Reihe von Befehlen durchführen (identifizieren bei Services, ggf mit anderen Bots linken, Channels joinen...).

(Das war übrigens sehr grundlegend und von TIdTCPClient ausgegangen, bei der IdIRC-Komponente gibt es sicher noch mehr Events und zu beachtende/nützliche Sachen, mein Beispiel ist aber leichter auf andere Anwendungszwecke übertragbar, FTP funktioniert ähnlich beispielsweise.)

Mach dir also auf jeden Fall erst mal ein klares Konzept, was der Bot können soll und wie er aufgebaut werden soll. Wenn du neu in Delphi bist, solltest du auf jeden Fall die Tutorials zur Objektorientierten Programmierung lesen, das erleichtert die Sache um einiges. Danach 1-2 Tage auf Papier alles aufschreiben was dir einfällt und wie du es verknüpfst, auch programmiertechnisch. Fragen zu den einzelnen Sachen (NACHDEM du selbst gesucht und ausprobiert hast), kannst du natürlich hier in der DP stellen ;).

Viel Spaß beim Programmieren/Planen & cu

[edit]PS: @Spessi: Für einen Bot braucht man keine Fenster pro Channel würde ich sagen, zumindest wenn er auf dem Server ohne GUI läuft und sich über's IRC/Configfiles steuern lässt (was recht sinnvoll wäre, würde ich sagen - je nach Anwendungsbereich) ;)[/edit]

DGL-luke 18. Mai 2005 10:13

Re: IRC BOT Source
 
wie empfängt man bei Indy 10 idirc eigentlcih etwas? bei indy 9 gabs afaik onreceive. und jetzt?

CodenameCookie 18. Mai 2005 10:16

Re: IRC BOT Source
 
@Spessi VIELEN HERZLICHEN DANKE :) werds gleich ma testen :!:

Grüsse CC

Neuni 18. Mai 2005 11:13

Re: IRC BOT Source
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi,
hab mich auch mal dran versucht nen kleinen IRC-Bot zu coden, aber immer wenn ich connecten will zu einem Server, dann kommt den Fehler (siehe Anhang)

Einer ne Idee warum?

CodenameCookie 18. Mai 2005 11:25

Re: IRC BOT Source
 
hmm soweit komm ich noch ned mal , bei mir tut sich ATM noch goar nix :) ..

PS: neuni ich bekomm nen €uro von dir :roteyes:

Neuni 18. Mai 2005 12:01

Re: IRC BOT Source
 
Warum tut sich nix? Bei mir kommts schon sobald ich
Delphi-Quellcode:
irc.connect;
mache :)

PS: Ätsch...is jetzt meiner ;)

Spessi 18. Mai 2005 18:42

Re: IRC BOT Source
 
Zitat:

Zitat von sECuRE
[edit]PS: @Spessi: Für einen Bot braucht man keine Fenster pro Channel würde ich sagen, zumindest wenn er auf dem Server ohne GUI läuft und sich über's IRC/Configfiles steuern lässt (was recht sinnvoll wäre, würde ich sagen - je nach Anwendungsbereich) ;)[/edit]

Ja, ich hab ja auch gesagt, für nen Bot würde ich direkt in mIRC nen Script basteln :) Bin halt jetzt von nem Client ausgegangen, und da wäre es praktisch, für jeden Channel nen eigenes Fenster zu haben, oder? :gruebel: :zwinker:

[edit]
Zitat:

Zitat von Neuni
Hi
hab mich auch mal dran versucht nen kleinen IRC-Bot zu coden, aber immer wenn ich connecten will zu einem Server, dann kommt den Fehler (siehe Anhang)
Einer ne Idee warum?

Benutzt du Indy? Hm.. Server und Port alles angegeben? (Dumme Frage:) Ist "irc" denn TIdIRC? :D
[/edit]
mfg Spessi

Neuni 18. Mai 2005 20:13

Re: IRC BOT Source
 
Ja, ist es ;) Wäre ja sonst etwas dämlich, ne? :lol:

Also ich hab einfach mal das genommen was hier shconmal von Spessi gepostet wurde und auch da gehts nicht. Ich hab immer diese dumme Fehlermeldung. :wall:

Spessi 18. Mai 2005 21:10

Re: IRC BOT Source
 
Hm.. komisch. Also bei mir geht es.. Kommt die Fehlermeldung direkt nachdem du die Datei kompilierst und startest oder erst wenn du 'ne Verbindung herstellen willst?
Falls es direkt nach dem starten kommt, versuche mal es außerhalb von Delphi zu starten, also direkt die Exe zu öffnen (Kam bei mir auch schonmal vor, dass es erst danach klappt.)
Wenn es danach immernoch nicht klappt, weiß ich nix mehr :)

Neuni 19. Mai 2005 12:45

Re: IRC BOT Source
 
Es kommt dann wenn ich verbinden klicke...wenn ich aber die Datei nicht mit Delphi öffne, dann kommt es nicht, aber er verbindet auch nicht. :(

CodenameCookie 19. Mai 2005 13:22

Re: IRC BOT Source
 
@Neuni .. folgende Frage :

hast du das

Delphi-Quellcode:
IdIRC1.Connect(500);
bei

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
oder bei dem

Delphi-Quellcode:
Button2.Click
:?:

Spessi 19. Mai 2005 15:47

Re: IRC BOT Source
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hm.. es müsste schon auf den Button also das Connect, wenns direkt ins Create kommt, weiß ich nich obs geht :P Er verbindet nich? Hm, ist der Port usw. auch alles richtig? Also gibts den server auch?
Naja, also ich hab hier jetzt die Rar datei im Anhang, da funktioniert bei mir alles(!) einwandfrei. Ich kann verbinden, kann den Channel betreten und kann Texte schreiben. Wenns jetzt nich geht, dürft ihr mich erschlagen ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:47 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz