Foro de elhacker.net

Programación => Programación General => Mensaje iniciado por: BigBear en 14 Febrero 2014, 19:10 pm



Título: [Delphi] PirateBay Manager 0.8
Publicado por: BigBear en 14 Febrero 2014, 19:10 pm
Un simple programa en Delphi para buscar torrents en PirateBay.

Una imagen :

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

El codigo :

Código
  1. // PirateBay Manager 0.8
  2. // (C) Doddy Hackman 2014
  3.  
  4. unit pirate;
  5.  
  6. interface
  7.  
  8. uses
  9.  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  10.  Dialogs, StdCtrls, PerlRegEx, IdBaseComponent, IdComponent, IdTCPConnection,
  11.  IdTCPClient, IdHTTP, ComCtrls, sListView, sGroupBox, sListBox, ShellApi,
  12.  sSkinManager, acPNG, ExtCtrls, sStatusBar, sEdit, sButton;
  13.  
  14. type
  15.  TForm1 = class(TForm)
  16.    IdHTTP1: TIdHTTP;
  17.    PerlRegEx1: TPerlRegEx;
  18.    sGroupBox1: TsGroupBox;
  19.    sListView1: TsListView;
  20.    sListBox1: TsListBox;
  21.    sListBox2: TsListBox;
  22.    sListBox3: TsListBox;
  23.    PerlRegEx2: TPerlRegEx;
  24.    sSkinManager1: TsSkinManager;
  25.    Image1: TImage;
  26.    sGroupBox2: TsGroupBox;
  27.    sEdit1: TsEdit;
  28.    sStatusBar1: TsStatusBar;
  29.    sButton1: TsButton;
  30.    procedure sListView1DblClick(Sender: TObject);
  31.    procedure sButton1Click(Sender: TObject);
  32.    procedure FormCreate(Sender: TObject);
  33.  private
  34.    { Private declarations }
  35.  public
  36.    { Public declarations }
  37.  end;
  38.  
  39. var
  40.  Form1: TForm1;
  41.  
  42. implementation
  43.  
  44. {$R *.dfm}
  45.  
  46. procedure TForm1.FormCreate(Sender: TObject);
  47. begin
  48.  sSkinManager1.SkinDirectory := ExtractFilePath(Application.ExeName) + 'Data';
  49.  sSkinManager1.SkinName := 'tv-b';
  50.  sSkinManager1.Active := True;
  51. end;
  52.  
  53. procedure TForm1.sButton1Click(Sender: TObject);
  54. var
  55.  busqueda: string;
  56.  code: string;
  57.  nombre: string;
  58.  link_torrent: string;
  59.  limpiando_data: string;
  60.  data: string;
  61.  seeders: string;
  62.  leechers: string;
  63.  i: integer;
  64.  
  65. begin
  66.  
  67.  sListBox1.Clear;
  68.  sListBox2.Clear;
  69.  sListBox3.Clear;
  70.  sListView1.Clear;
  71.  
  72.  busqueda := sEdit1.Text;
  73.  busqueda := StringReplace(busqueda, ' ', '%20', [rfReplaceAll, rfIgnoreCase]);
  74.  
  75.  sStatusBar1.Panels[0].Text := '[+] Searching ...';
  76.  sStatusBar1.Update;
  77.  
  78.  code := IdHTTP1.Get('http://thepiratebay.se/search/' + busqueda + '/0/99/0');
  79.  
  80.  sStatusBar1.Panels[0].Text := '[+] Finished';
  81.  sStatusBar1.Update;
  82.  
  83.  PerlRegEx1.Regex :=
  84.    '(.*?)class="detLink" title="Details for (.*?)">(.*?)<a href="magnet(.*?)" title="Download this torrent using magnet"(.*?)<font class="detDesc">(.*?)<\/font>(.*?)<td align="right">(.*?)<\/td>(.*?)<td align="right">(.*?)<\/td>(.*?)';
  85.  PerlRegEx1.Subject := code;
  86.  
  87.  while PerlRegEx1.MatchAgain do
  88.  // if PerlRegEx1.Match then
  89.  begin
  90.    nombre := PerlRegEx1.SubExpressions[2];
  91.    link_torrent := 'magnet' + PerlRegEx1.SubExpressions[4];
  92.    limpiando_data := PerlRegEx1.SubExpressions[6];
  93.    seeders := PerlRegEx1.SubExpressions[8];
  94.    leechers := PerlRegEx1.SubExpressions[10];
  95.  
  96.    PerlRegEx2.Regex := '(.*), ULed by <';
  97.    PerlRegEx2.Subject := limpiando_data;
  98.  
  99.    if PerlRegEx2.Match then
  100.    begin
  101.      limpiando_data := PerlRegEx2.SubExpressions[1];
  102.      data := StringReplace(limpiando_data, '&nbsp;', '', [rfReplaceAll,
  103.        rfIgnoreCase]);
  104.      data := data + ', Seeders ' + seeders + ', Leechers ' + leechers;
  105.  
  106.    end;
  107.  
  108.    sListBox1.Items.Add(nombre);
  109.    sListBox2.Items.Add(data);
  110.    sListBox3.Items.Add(link_torrent);
  111.  
  112.  end;
  113.  
  114.  for i := 0 to sListBox1.Count - 1 do
  115.  begin
  116.    // ShowMessage(IntToStr(i));
  117.    with sListView1.Items.Add do
  118.    begin
  119.      Caption := sListBox1.Items[i];
  120.      SubItems.Add(sListBox2.Items[i]);
  121.    end;
  122.  end;
  123. end;
  124.  
  125. procedure TForm1.sListView1DblClick(Sender: TObject);
  126. begin
  127.  // ShowMessage(sListBox3.Items[sListView1.Selected.Index]);
  128.  ShellExecute(0, nil, PChar(sListBox3.Items[sListView1.Selected.Index]), nil,
  129.    nil, SW_SHOWNORMAL);
  130. end;
  131.  
  132. end.
  133.  
  134. // The End ?
  135.  

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


Título: Re: [Delphi] PirateBay Manager 0.8
Publicado por: cron0ar8R en 19 Febrero 2014, 13:05 pm
gracias por el aporte!

una cosa, me sale este mensaje:

---------------------------
Warning
---------------------------
Trial version of the AlphaControls package was used.

For purchasing the fully functional version visit www.alphaskins.com, please.

Thank you!
---------------------------
Aceptar  
---------------------------


tengo que comprar algo?

si se aceptan propuestas de mejora:

- en los resultados de búsqueda que haya una columna donde diga si es video, audio, ebook...
- en el caso de si es video, al menos, que diga: IDIOMA, resolución, formato video, codec video, seeders, etc. o sea, una columna para cada elemento.
- que se puedan ordenar los resultados por columnas.

por pedir que no quede  ;D

un saludo


Título: Re: [Delphi] PirateBay Manager 0.8
Publicado por: BigBear en 20 Febrero 2014, 18:49 pm
ja , por eso me mude a delphi xe , alphacontrols es el componente que use para el skin , el programa con el componente crackeado esta en la carpeta exe.


Título: Re: [Delphi] PirateBay Manager 0.8
Publicado por: cron0ar8R en 20 Febrero 2014, 21:48 pm
ok, gracias máquina  >:D