Delphi-PRAXiS
Seite 3 von 4     123 4      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi IRC-Bot als Anfänger? (https://www.delphipraxis.net/197331-irc-bot-als-anfaenger.html)

ford42 1. Aug 2018 10:24

AW: IRC-Bot als Anfänger?
 
Heißt das, dass ich auf dem Proxy-Server was einrichten muss?

hhcm 1. Aug 2018 10:33

AW: IRC-Bot als Anfänger?
 
Nein,

du musst den IRC Client mit einem IOHandler verbinden (TIdIOHandlerStack) und diesen wiederum mit der Proxy Komponente.

KodeZwerg 1. Aug 2018 10:38

AW: IRC-Bot als Anfänger?
 
Ja darauf wollte ich hinaus und Daniels Beitrag zum lesen der Manuals unterstützen.

ford42 1. Aug 2018 10:54

AW: IRC-Bot als Anfänger?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hmh, wenn ichs richtig verstanden habe muss ich einfach

Delphi-Quellcode:
IdIRC1.IOHandler := IdIOHandlerStack1;
machen. Stimmt das?

Wenn ja, dann meckert er wegen dem SSL rum (Fehler 502 Proxy Error)

Aber ich habe den Port 80 auch in meinem ff konfiguriert

ford42 1. Aug 2018 10:56

AW: IRC-Bot als Anfänger?
 
Oder ist es, weil der Proxy SSL verlangt, dieses jedoch bei meinem Programm (noch) nicht eingerichtet ist?

ford42 1. Aug 2018 14:17

AW: IRC-Bot als Anfänger?
 
hmh, ich bin nun daheim ohne Proxy.

Da kommt zwar keine Fehlermeldung, allerdings gehts trotzdem nicht.

Also wenn ich mit meinem normalen User den botty anschreiben möchte kommt da, dass der User nicht existiert und in dem Channel ist auch niemand außer ich selber...


Delphi-Quellcode:
unit UnitIRCBot;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, IdBaseComponent, IdComponent,
  IdTCPConnection, IdTCPClient, IdCmdTCPClient, IdIRC, IdContext, Vcl.StdCtrls,
  IdCustomTransparentProxy, IdConnectThroughHttpProxy, IdIOHandler,
  IdIOHandlerSocket, IdIOHandlerStack;

type
  TForm1 = class(TForm)
    IdIRC1: TIdIRC;
    Bt_Connect: TButton;
    Bt_JoinChannel: TButton;
    Memo1: TMemo;
    Edit1: TEdit;
    Bt_Send: TButton;
    IdConnectThroughHttpProxy1: TIdConnectThroughHttpProxy;
    IdIOHandlerStack1: TIdIOHandlerStack;
    procedure FormCreate(Sender: TObject);
    procedure Bt_ConnectClick(Sender: TObject);
    procedure Bt_JoinChannelClick(Sender: TObject);
    procedure Bt_SendClick(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure IdIRC1PrivateMessage(ASender: TIdContext; const ANickname, AHost,
      ATarget, AMessage: string);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Bt_ConnectClick(Sender: TObject);
begin
  try //versuche
    IdIRC1.Connect(); //zu verbinden
  except //wenn Fehler
    on E: Exception do
      showMessage('Fehler: ' + E.Message); //Meldung zeigen
  end;
end;

procedure TForm1.Bt_JoinChannelClick(Sender: TObject);
begin
    try //versuche
    IdIRC1.Join('#botty-channel');
  except //wenn Fehler
    on E: Exception do
      showMessage('Fehler: ' + E.Message); //Meldung zeigen
  end;
end;

procedure TForm1.Bt_SendClick(Sender: TObject);
begin
  IdIRC1.Say('#botty-channel',Edit1.Text); //Nachricht zum Channel schicken
  Memo1.Lines.Add(IdIRC1.Nickname+': '+Edit1.Text); //Zum Memo hinzufügen, denn durch eigene Nachrichten wird das OnMessage-Ereignis nicht ausgelöst
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  IdIRC1.Disconnect();
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  //IdConnectThroughHttpProxy1.Enabled := True;
  //IdConnectThroughHttpProxy1.Host := 'Hongkong';
  //IdConnectThroughHttpProxy1.Port := 80;

  //IdIRC1.IOHandler := IdIOHandlerStack1;

  IdIRC1.Nickname:='botty'; // Legt den Nick fest

  IdIRC1.Host:='chat.freenode.net'; // Gibt den Server an

  IdIRC1.Port:=6667; //Irc Port

end;

procedure TForm1.IdIRC1PrivateMessage(ASender: TIdContext; const ANickname,
  AHost, ATarget, AMessage: string);
begin
  Memo1.lines.add(ANickname+': '+AMessage);
end;

end.

hhcm 2. Aug 2018 07:53

AW: IRC-Bot als Anfänger?
 
Hallo,

wenn ich idIrc.Realname und idIrc.Username angebe funktioniert´s hier.

ford42 2. Aug 2018 08:28

AW: IRC-Bot als Anfänger?
 
Danke, muss ich mal daheim probieren. Hier gehts ja wegen dem Proxy noch nicht...

Was ist denn der Unterschied zwischen Username und Nickname??

EDIT: Habe die Verbindung gerade über mein Smartphone laufen lassen und da gehts nun auch...

Aber wäre natürlich cool, wenn es auch über den Proxy gehen würde...

hhcm 2. Aug 2018 09:07

AW: IRC-Bot als Anfänger?
 
Alles nur eine konfigurationssache.
Wenn der FF Server nicht für den Port 6667 eingerichtet ist kannst du einstellen was du möchtest.

ford42 2. Aug 2018 09:15

AW: IRC-Bot als Anfänger?
 
Wenn ich nach ffserver suche kommt da, dass es ein Server für media und audio ist. Wofür benötige ich denn diesen für nen IRC-Client? Oo

Oder meinst du was anderes?

Mit firefox kome ich mit diesen Port ins Internet

EDIT: Du meinst den IRC-Port? Der funktioniert ja mitm Handy..
Dachte du meinst den Proxy-Port (80)


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:52 Uhr.
Seite 3 von 4     123 4      

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