domingo, 11 de dezembro de 2011

(Pascal) 4shared Music Downloader

Fiz um sistema de downloader para músicas do 4shared

Demonstração:

Ele também acelera bastante o download.

Código fonte:
unit Unit2;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls, IdBaseComponent, IdComponent, IdTCPConnection,
IdTCPClient, IdHTTP, XPMan, ExtCtrls;

type
TForm2 = class(TForm)
Button1: TButton;
Edit1: TEdit;
ProgressBar1: TProgressBar;
Label1: TLabel;
IdHTTP1: TIdHTTP;
IdHTTP2: TIdHTTP;
XPManifest1: TXPManifest;
Label2: TLabel;
LinkLabel1: TLinkLabel;
procedure Button1Click(Sender: TObject);
procedure IdHTTP1Work(ASender: TObject; AWorkMode: TWorkMode;
AWorkCount: Int64);
procedure IdHTTP1WorkBegin(ASender: TObject; AWorkMode: TWorkMode;
AWorkCountMax: Int64);
procedure IdHTTP1WorkEnd(ASender: TObject; AWorkMode: TWorkMode);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form2: TForm2;

implementation

{$R *.dfm}

procedure TForm2.Button1Click(Sender: TObject);
var
arquivo, url: string;
i: integer;
MyFile: TFileStream;
begin
Label1.caption := 'Status: Inicializando';
url := IdHTTP2.Get(edit1.text);

i := pos('preview.mp3', url);

arquivo := '';
Label1.caption := 'Status: Procurando Link';
While (url[i] <> '=') Do
Begin
arquivo := url[i] + arquivo;
i := i - 1;
End;
arquivo := arquivo + 'review.mp3';

MyFile := TFileStream.Create('musica baixada.mp3', fmCreate);
try
IdHTTP1.Get(arquivo, MyFile);
finally

MyFile.Free;
end;

ShowMessage('Música baixada. Confira na pasta do programa!');
end;

procedure TForm2.IdHTTP1Work(ASender: TObject; AWorkMode: TWorkMode; AWorkCount: Int64);
begin
ProgressBar1.Position := AWorkCount;
end;

procedure TForm2.IdHTTP1WorkBegin(ASender: TObject; AWorkMode: TWorkMode; AWorkCountMax: Int64);
begin
ProgressBar1.Position := 0;
ProgressBar1.Max := AWorkCountMax;
Label1.caption := 'Status: Em andamento';
end;

procedure TForm2.IdHTTP1WorkEnd(ASender: TObject; AWorkMode: TWorkMode);
begin
ProgressBar1.Position := ProgressBar1.Max;
Label1.caption := 'Status: Concluído';
end;

end.





Download:


Desenvolvido por Bruno da Silva

Nenhum comentário:

Postar um comentário