Delphi-PRAXiS
Seite 1 von 2  1 2      

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


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:58 Uhr.
Seite 1 von 2  1 2      

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