rendered paste bodyunit Visualizar;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Controls, Forms,
Menus, StrUtils, IniFiles, IdCookieManager, IdBaseComponent, IdComponent,
IdTCPConnection, IdTCPClient, IdHTTP, pngimage, SHDocVw,
AppEvnts, OleCtrls,MSHTML, ActiveX, ScktComp, StdCtrls;
type
TVisualizador = class(TForm)
PopupMenu2: TPopupMenu;
Copy1: TMenuItem;
SelectAll1: TMenuItem;
MainMenu1: TMainMenu;
Sair1: TMenuItem;
IdHTTP1: TIdHTTP;
IdCookieManager1: TIdCookieManager;
WebBrowser1: TWebBrowser;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormShow(Sender: TObject);
procedure WebBrowser1StatusTextChange(Sender: TObject; const Text: WideString);
procedure Button2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Copy1Click(Sender: TObject);
procedure SelectAll1Click(Sender: TObject);
procedure PopupMenu2Popup(Sender: TObject);
procedure WebBrowser1BeforeNavigate2(ASender: TObject;
const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
Headers: OleVariant; var Cancel: WordBool);
private
var
Ini:TIniFile;
procedure InitHtml(AWebBrower: TWebBrowser);
procedure ShowHtml(content: string);
{ Private declarations }
public
{ Public declarations }
end;
var
Visualizador: TVisualizador;
HTML_Head : TStringList;
implementation
uses Codhtml;
{$R *.dfm}
function Buscar(html,Inicio,fim: string): string;
var i,f: integer;
S: String;
begin
S := LowerCase(html);
Inicio:=LowerCase(Inicio);
Fim:=LowerCase(Fim);
i:=Pos(Inicio,S)+Length(Inicio);
f:=PosEx(fim,S, i);
result:=trim(Copy(html,i,f-i));
end;
procedure TVisualizador.InitHtml(AWebBrower: TWebBrowser);
var
URL: OleVariant;
begin
URL := 'about:blank';
AWebBrower.Navigate2(URL);
end;
procedure TVisualizador.ShowHtml(content: string);
var
v: Variant;
HTMLDocument: IHTMLDocument2;
begin
v := VarArrayCreate([0, 0], varVariant);
v[0] := content;
HTMLDocument := WebBrowser1.Document as IHTMLDocument2;
HTMLDocument.write(PSafeArray(TVarData(v).VArray));
HTMLDocument.close;
HTMLDocument := nil;
end;
procedure TVisualizador.WebBrowser1BeforeNavigate2(ASender: TObject;
const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
Headers: OleVariant; var Cancel: WordBool);
const
hUrl = 'about:blank';
begin
if string(URL) = hUrl + 'Close' then
begin
Close;
end;
if string(URL) = hUrl + 'Home' then
begin
ShowHtml(HTML_Head.Text);
Cancel := True; //don't change page
Exit;
end;
if string(URL) = hUrl + 'Help' then
begin
ShowHtml(HTML_Head.Text);
Cancel := True;
Exit;
end;
end;
procedure TVisualizador.WebBrowser1StatusTextChange(Sender: TObject;
const Text: WideString);
begin
Caption := Text;
end;
procedure TVisualizador.Button2Click(Sender: TObject);
begin
Close;
end;
procedure TVisualizador.FormClose(Sender: TObject; var Action: TCloseAction);
begin
idhttp1.Disconnect;
end;
procedure TVisualizador.FormCreate(Sender: TObject);
var
Params:TstringStream;
html:string;
begin
Ini := TIniFile.Create(extractfilepath(paramstr(0)) + 'config.ini');
Params := TStringStream.create('');
Params.WriteString('st=0');
Params.WriteString('&act=Post');
Params.WriteString('&f=174');
Params.WriteString('&auth_key='+ini.ReadString('Informacoes', 'Info4', ''));
Params.WriteString('&removeattachid=0');
Params.WriteString('&MAX_FILE_SIZE=5120000');
Params.WriteString('&CODE=01');
Params.WriteString('&TopicTitle='+Geradorhtml.titulopost.Lines.text);
Params.WriteString('&TopicDesc='+Geradorhtml.descpost.Lines.text);
Params.WriteString('&poll_question=');
Params.WriteString('&ed-0_wysiwyg_used=0');
Params.WriteString('&editor_ids[]=ed-0');
Params.WriteString('&Post='+Geradorhtml.codigohtml.Lines.text);
Params.WriteString('&post_htmlstatus=0');
Params.WriteString('&enableemo=yes');
Params.WriteString('&enablesig=yes');
Params.WriteString('&iconid=0');
Params.WriteString('&preview=Visualizar post');
with idhttp1 do
begin
Request.ContentType := 'application/x-www-form-urlencoded';
Request.Referer := 'http://www.brazukas.org/index.php?act=post';
CookieManager.Create(nil);
CookieManager.AddCookie('rte-sidepanel=open', 'www.brazukas.org');
CookieManager.AddCookie('ipb_stronghold='+ini.ReadString('Informacoes', 'Info1', ''), 'www.brazukas.org');
CookieManager.AddCookie('pass_hash='+ini.ReadString('Informacoes', 'Info2', ''), 'www.brazukas.org');
CookieManager.AddCookie('member_id='+ini.ReadString('Informacoes', 'Info3', ''), 'www.brazukas.org');
try
Response.KeepAlive := False;
HTML := Post('http://www.brazukas.org/index.php?act=post', Params);
html := Buscar(html, '<div class="row1">', '<br /><form');
except
on E: Exception do
Messagebox(0,'Error', PAnsiChar('Error encountered during POST: ' + E.Message), 32);
end;
Html_Head := TStringLIst.Create;
with Html_Head do
begin
Add('<html>' );
Add('<head>' );
Add('<title>Gerador de Post - Brazukas.org</title>' );
Add('</head>' );
Add('<body bgcolor="#EEF2F7">' );
Add(html);
end;
ShowHtml(HTML_Head.text);
end;
Idhttp1.CookieManager.Free;
params.Free;
Ini.free;
end;
procedure TVisualizador.FormShow(Sender: TObject);
var
Params:TstringStream;
html:string;
begin
Ini := TIniFile.Create(extractfilepath(paramstr(0)) + 'config.ini');
Params := TStringStream.create('');
Html_Head := TStringLIst.Create;
Params.WriteString('st=0');
Params.WriteString('&act=Post');
Params.WriteString('&f=174');
Params.WriteString('&auth_key='+ini.ReadString('Informacoes', 'Info4', ''));
Params.WriteString('&removeattachid=0');
Params.WriteString('&MAX_FILE_SIZE=5120000');
Params.WriteString('&CODE=01');
Params.WriteString('&TopicTitle='+Geradorhtml.titulopost.Lines.text);
Params.WriteString('&TopicDesc='+Geradorhtml.descpost.Lines.text);
Params.WriteString('&poll_question=');
Params.WriteString('&ed-0_wysiwyg_used=0');
Params.WriteString('&editor_ids[]=ed-0');
Params.WriteString('&Post='+Geradorhtml.codigohtml.Lines.text);
Params.WriteString('&post_htmlstatus=0');
Params.WriteString('&enableemo=yes');
Params.WriteString('&enablesig=yes');
Params.WriteString('&iconid=0');
Params.WriteString('&preview=Visualizar post');
with idhttp1 do
begin
Request.ContentType := 'application/x-www-form-urlencoded';
Request.Referer := 'http://www.brazukas.org/index.php?act=post';
CookieManager.Create(nil);
CookieManager.AddCookie('rte-sidepanel=open', 'www.brazukas.org');
CookieManager.AddCookie('ipb_stronghold='+ini.ReadString('Informacoes', 'Info1', ''), 'www.brazukas.org');
CookieManager.AddCookie('pass_hash='+ini.ReadString('Informacoes', 'Info2', ''), 'www.brazukas.org');
CookieManager.AddCookie('member_id='+ini.ReadString('Informacoes', 'Info3', ''), 'www.brazukas.org');
try
Response.KeepAlive := False;
HTML := Post('http://www.brazukas.org/index.php?act=post', Params);
html := Buscar(html, '<div class="row1">', '<br /><form');
except
on E: Exception do
Messagebox(0,'Error', PAnsiChar('Error encountered during POST: ' + E.Message), 32);
end;
Idhttp1.CookieManager.Free;
params.Free;
Ini.free;
end;
with Html_Head do
begin
Add('<html>' );
Add('<head>' );
Add('<title>Gerador de Post - Brazukas.org</title>' );
Add('</head>' );
Add('<body bgcolor="#EEF2F7">' );
Add(html);
Add('<body>' );
Add('</body>' );
Add('</html>' );
end;
ShowHtml(HTML_Head.Text);
end;
procedure TVisualizador.Copy1Click(Sender: TObject);
begin
//Copy
try
WebBrowser1.ExecWB(OLECMDID_COPY, OLECMDEXECOPT_PROMPTUSER);
except
end;
end;
procedure TVisualizador.SelectAll1Click(Sender: TObject);
begin
//Select All
try
WebBrowser1.ExecWB(OLECMDID_SELECTALL, OLECMDEXECOPT_PROMPTUSER);
except
end;
end;
procedure TVisualizador.PopupMenu2Popup(Sender: TObject);
begin
if WebBrowser1.OleObject.Document.queryCommandEnabled('Copy') then
Copy1.Enabled := True
else
Copy1.Enabled := False;
end;
initialization
OleInitialize(nil);
finalization
OleUninitialize;
end.