Delphi-PRAXiS
Seite 4 von 4   « Erste     234   

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)

hhcm 2. Aug 2018 09:18

AW: IRC-Bot als Anfänger?
 
Ich rede von dem Proxy. (F)ore(F)ront.

ford42 2. Aug 2018 09:26

AW: IRC-Bot als Anfänger?
 
Aber den Proxy habe ich doch auf Port 80 definiert?

ford42 2. Aug 2018 09:31

AW: IRC-Bot als Anfänger?
 
Achso, sry, ich stand auf dem Schlauch..

Du meinst, dass der Proxy-Server den IRC-Port blockiert?

KodeZwerg 2. Aug 2018 09:45

AW: IRC-Bot als Anfänger?
 
Zitat:

Zitat von ford42 (Beitrag 1409459)
Aber wäre natürlich cool, wenn es auch über den Proxy gehen würde...

Funktioniert denn nicht die Methode die das Manual beschreibt?

ford42 2. Aug 2018 10:07

AW: IRC-Bot als Anfänger?
 
Also so dann?

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, IdHTTP;

type
  TForm1 = class(TForm)
    IdIRC1: TIdIRC;
    Bt_Connect: TButton;
    Bt_JoinChannel: TButton;
    Memo1: TMemo;
    Edit1: TEdit;
    Bt_Send: TButton;
    IdConnectThroughHttpProxy1: TIdConnectThroughHttpProxy;
    IdIOHandlerStack1: TIdIOHandlerStack;
    IdHTTP1: TIdHTTP;
    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);
    procedure IdIRC1Join(ASender: TIdContext; const ANickname, AHost,
      AChannel: 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
  Edit1.Text := '';
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

  IdIRC1.RealName:='booty';

  IdIRC1.Username:='booty';

  IdHTTP1.ProxyParams.ProxyServer := 'Hongkong';
  IdHTTP1.ProxyParams.ProxyPort := 80;
  IdHTTP1.IOHandler := IdIOHandlerStack1;



  Memo1.Text := '';

end;

procedure TForm1.IdIRC1Join(ASender: TIdContext; const ANickname, AHost,
  AChannel: string);
var
  welcomeMsg: String;
begin
  if ANickname <> IdIRC1.Nickname then
  begin
    welcomeMsg := 'Hey, ' + ANickname;
    IdIRC1.Say('#botty-channel', welcomeMsg); //Nachricht zum Channel schicken
    Memo1.Lines.Add(IdIRC1.Nickname + ': ' + welcomeMsg);
  end;
end;

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

end.

ford42 2. Aug 2018 10:28

AW: IRC-Bot als Anfänger?
 
Ich glaub das liegt am Proxy-Server. Bei Hexchat kommt auch
Code:
HTTP/1.1 502 Proxy Error ( Der angegebene SSL-Port ist nicht zulässig. Forefront TMG wurde nicht zur Unterstützung von SSL-An

ford42 2. Aug 2018 10:35

AW: IRC-Bot als Anfänger?
 
Mal ne andere Frage:

Wie heißt denn das OnMessage-Ereignis in der neuen Version?


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:26 Uhr.
Seite 4 von 4   « Erste     234   

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