// Spam King 0.2
// Coded By Doddy H
unit irc;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, sButton, sSkinManager, ExtCtrls, IdBaseComponent,
IdComponent, IdTCPConnection, IdTCPClient, IdHTTP, IdContext, IdCmdTCPClient,
IdIRC, sMemo, sGroupBox, sLabel, sEdit, ComCtrls, sStatusBar, sListBox,
PerlRegEx, jpeg, acPNG;
type
TForm1 = class(TForm)
sSkinManager1: TsSkinManager;
Timer1: TTimer;
IdIRC1: TIdIRC;
sGroupBox1: TsGroupBox;
sLabel2: TsLabel;
sEdit1: TsEdit;
sEdit2: TsEdit;
sLabel3: TsLabel;
sEdit3: TsEdit;
sLabel4: TsLabel;
sEdit4: TsEdit;
sStatusBar1: TsStatusBar;
sGroupBox2: TsGroupBox;
sListBox1: TsListBox;
sLabel5: TsLabel;
sEdit5: TsEdit;
sButton2: TsButton;
sGroupBox3: TsGroupBox;
sListBox2: TsListBox;
sButton1: TsButton;
sLabel6: TsLabel;
sEdit6: TsEdit;
sButton3: TsButton;
sGroupBox4: TsGroupBox;
sMemo1: TsMemo;
PerlRegEx1: TPerlRegEx;
Console: TsGroupBox;
sMemo2: TsMemo;
sLabel1: TsLabel;
Image1: TImage;
sLabel7: TsLabel;
procedure sButton1Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure IdIRC1PrivateMessage(ASender: TIdContext; const ANicknameFrom,
AHost, ANicknameTo, AMessage: string);
procedure sButton3Click(Sender: TObject);
procedure IdIRC1NicknamesListReceived(ASender: TIdContext;
const AChannel: string; ANicknameList: TStrings);
procedure sButton2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure IdIRC1Raw(ASender: TIdContext; AIn: Boolean;
const AMessage: string);
procedure IdIRC1Disconnected(Sender: TObject);
procedure IdIRC1Connected(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
sSkinManager1.SkinDirectory := ExtractFilePath(Application.ExeName) + 'Data';
sSkinManager1.SkinName := 'tv-b';
sSkinManager1.Active := True;
end;
procedure TForm1.IdIRC1Connected(Sender: TObject);
begin
sStatusBar1.Panels[0].text := '[+] Connected ...';
Form1.sStatusBar1.Update;
end;
procedure TForm1.IdIRC1Disconnected(Sender: TObject);
begin
sStatusBar1.Panels[0].text := '[+] Stopped';
Form1.sStatusBar1.Update;
end;
procedure TForm1.IdIRC1NicknamesListReceived
(ASender: TIdContext; const AChannel: string; ANicknameList: TStrings);
var
i: integer;
i2: integer;
renicks: string;
listanow: TStringList;
arraynow: array of String;
begin
sListBox2.Clear;
for i := 0 to ANicknameList.Count - 1 do
begin
PerlRegEx1.Regex := '(.*) = ' + sEdit3.text + ' :(.*)';
PerlRegEx1.Subject := ANicknameList[i];
if PerlRegEx1.Match then
begin
renicks := PerlRegEx1.SubExpressions[2];
renicks := StringReplace(renicks, sEdit4.text, '', []);
listanow := TStringList.Create;
listanow.Delimiter := ' ';
listanow.DelimitedText := renicks;
for i2 := 0 to listanow.Count - 1 do
begin
sListBox2.Items.Add(listanow[i2]);
end;
end;
end;
end;
procedure TForm1.IdIRC1PrivateMessage(ASender: TIdContext; const ANicknameFrom,
AHost, ANicknameTo, AMessage: string);
begin
sMemo1.Lines.Add(ANicknameFrom + ' : ' + AMessage);
end;
procedure TForm1.IdIRC1Raw(ASender: TIdContext; AIn: Boolean;
const AMessage: string);
begin
sMemo2.Lines.Add(AMessage);
end;
procedure TForm1.sButton1Click(Sender: TObject);
begin
sListBox2.Items.Clear;
sMemo2.Lines.Clear;
sMemo1.Lines.Clear;
IdIRC1.Host := sEdit1.text;
IdIRC1.Port := StrToInt(sEdit2.text);
IdIRC1.Nickname := sEdit4.text;
IdIRC1.Username := sEdit4.text + ' 1 1 1 1';
IdIRC1.AltNickname := sEdit4.text + '-123';
try
IdIRC1.Connect;
IdIRC1.Join(sEdit3.text);
Timer1.Interval := StrToInt(sEdit6.text) * 1000;
Timer1.Enabled := True;
except
sStatusBar1.Panels[0].text := '[-] Error';
Form1.sStatusBar1.Update;
end;
end;
procedure TForm1.sButton2Click(Sender: TObject);
begin
sListBox1.Items.Add(sEdit5.text);
end;
procedure TForm1.sButton3Click(Sender: TObject);
begin
sStatusBar1.Panels[0].text := '[-] Stopped';
Form1.sStatusBar1.Update;
IdIRC1.Disconnect();
Abort;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
var
i: integer;
begin
sStatusBar1.Panels[0].text := '[+] Spamming ...';
Form1.sStatusBar1.Update;
for i := 0 to sListBox2.Count - 1 do
begin
IdIRC1.Say(sListBox2.Items[i], sListBox1.Items[Random(sListBox1.Count - 1)
+ 0]);
end;
end;
end.
// The End ?