Foro de elhacker.net

Programación => Programación General => Mensaje iniciado por: BigBear en 11 Octubre 2013, 19:55 pm



Título: [Delphi] ImageShack Uploader 0.1
Publicado por: BigBear en 11 Octubre 2013, 19:55 pm
Un simple programa para subir imagenes a ImageShack.

Una imagen :

(http://doddyhackman.webcindario.com/images/imageshack.jpg)

El codigo :

Código
  1. // ImageShack Uploader 0.1
  2. // Based in the API of ImageShack
  3. // Coded By Doddy H
  4.  
  5. unit image;
  6.  
  7. interface
  8.  
  9. uses
  10.  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  11.  Dialogs, StdCtrls, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient,
  12.  IdHTTP, IdMultipartFormData, Buttons, sGroupBox, sSkinManager, sButton, sEdit,
  13.  ComCtrls, sStatusBar, acPNG, ExtCtrls, PerlRegEx;
  14.  
  15. type
  16.  TForm1 = class(TForm)
  17.    IdHTTP1: TIdHTTP;
  18.    sSkinManager1: TsSkinManager;
  19.    sGroupBox1: TsGroupBox;
  20.    sEdit1: TsEdit;
  21.    sButton1: TsButton;
  22.    sGroupBox2: TsGroupBox;
  23.    sEdit2: TsEdit;
  24.    sStatusBar1: TsStatusBar;
  25.    sGroupBox3: TsGroupBox;
  26.    sButton2: TsButton;
  27.    sButton3: TsButton;
  28.    sButton4: TsButton;
  29.    sButton5: TsButton;
  30.    Image1: TImage;
  31.    OpenDialog1: TOpenDialog;
  32.    PerlRegEx1: TPerlRegEx;
  33.  
  34.    procedure FormCreate(Sender: TObject);
  35.    procedure sButton2Click(Sender: TObject);
  36.    procedure sButton5Click(Sender: TObject);
  37.    procedure sButton4Click(Sender: TObject);
  38.    procedure sButton1Click(Sender: TObject);
  39.    procedure sButton3Click(Sender: TObject);
  40.  private
  41.    { Private declarations }
  42.  public
  43.    { Public declarations }
  44.  end;
  45.  
  46. var
  47.  Form1: TForm1;
  48.  
  49. implementation
  50.  
  51. {$R *.dfm}
  52.  
  53. procedure TForm1.FormCreate(Sender: TObject);
  54. begin
  55.  
  56.  sSkinManager1.SkinDirectory := ExtractFilePath(Application.ExeName) + 'Data';
  57.  sSkinManager1.SkinName := 'cold';
  58.  sSkinManager1.Active := True;
  59.  
  60.  OpenDialog1.InitialDir := GetCurrentDir;
  61. end;
  62.  
  63. procedure TForm1.sButton1Click(Sender: TObject);
  64. begin
  65.  
  66.  if OpenDialog1.Execute then
  67.  begin
  68.    sEdit1.Text := OpenDialog1.FileName;
  69.  end;
  70.  
  71. end;
  72.  
  73. procedure TForm1.sButton2Click(Sender: TObject);
  74. var
  75.  datos: TIdMultiPartFormDataStream;
  76.  code: string;
  77. begin
  78.  
  79.  if FileExists(sEdit1.Text) then
  80.  begin
  81.  
  82.    sStatusBar1.Panels[0].Text := '[+] Uploading ...';
  83.    Form1.sStatusBar1.Update;
  84.  
  85.    datos := TIdMultiPartFormDataStream.Create;
  86.    datos.AddFormField('key', 'fuck you');
  87.    datos.AddFile('fileupload', sEdit1.Text, 'application/octet-stream');
  88.    datos.AddFormField('format', 'json');
  89.  
  90.    code := IdHTTP1.Post('http://post.imageshack.us/upload_api.php', datos);
  91.  
  92.    PerlRegEx1.Regex := '"image_link":"(.*?)"';
  93.    PerlRegEx1.Subject := code;
  94.  
  95.    if PerlRegEx1.Match then
  96.    begin
  97.      sEdit2.Text := PerlRegEx1.SubExpressions[1];
  98.      sStatusBar1.Panels[0].Text := '[+] Done';
  99.      Form1.sStatusBar1.Update;
  100.    end
  101.    else
  102.    begin
  103.      sStatusBar1.Panels[0].Text := '[-] Error uploading';
  104.      Form1.sStatusBar1.Update;
  105.    end;
  106.  
  107.  end
  108.  else
  109.  begin
  110.    sStatusBar1.Panels[0].Text := '[+] File not Found';
  111.    Form1.sStatusBar1.Update;
  112.  end;
  113.  
  114. end;
  115.  
  116. procedure TForm1.sButton3Click(Sender: TObject);
  117. begin
  118.  sEdit2.SelectAll;
  119.  sEdit2.CopyToClipboard;
  120. end;
  121.  
  122. procedure TForm1.sButton4Click(Sender: TObject);
  123. begin
  124.  ShowMessage('Contact to lepuke[at]hotmail[com]');
  125. end;
  126.  
  127. procedure TForm1.sButton5Click(Sender: TObject);
  128. begin
  129.  Form1.Close();
  130. end;
  131.  
  132. end.
  133.  
  134. // The End ?
  135.  

Si lo quieren bajar lo pueden hacer de aca (http://sourceforge.net/projects/imageshackuploader/).


Título: Re: [Delphi] ImageShack Uploader 0.1
Publicado por: Eleкtro en 11 Octubre 2013, 23:41 pm
La interface quedó excelente

Crítica constructiva:
Deberías agregarle soporte para recibir argumentos, así sería una aplicación perfecta para agregarla al menú contextual de Windows, ya sabes, click derecho en una imagen > "Imageshack Uploader" y listo, así cargan los archivos más fácilmente.

(Aunque yo no lo necesito porque hice mi propio ImagesHack Uploader de esta manera, solo te doy la idea si quieres copiarla xD)

Un saludo


Título: Re: [Delphi] ImageShack Uploader 0.1
Publicado por: BigBear en 12 Octubre 2013, 01:43 am
ok , gracias por las sugerencias tendre que buscar en google sobre como hacer lo que dijiste en delphi.