_uf_add_xoc.pas

unit _uf_add_xoc;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ExtCtrls, StdCtrls,ComCtrls, ScktComp;

type
  T_FAddXoc = class(TForm)
    ed_filename: TEdit;
    AA_0570_Label1: TLabel;
    ed_filesize: TEdit;
    AA_0571_Label2: TLabel;
    Bevel1: TBevel;
    AA_0567_btn_go: TButton;
    AA_0569_btnCancel: TButton;
    Shape1: TShape;
    AA_0568_eTita: TLabel;
    AA_0511_CmXocCategs: TComboBox;
    AA_0572_Label4: TLabel;
    ed_desc: TEdit;
    AA_0573_Label5: TLabel;
    AA_0575_echeck_nik: TCheckBox;
    ed_file_http_url: TEdit;
    AA_0574_Label6: TLabel;
    ccConnector: TClientSocket;
    eStat: TLabel;
    ComImageo: TImage;
    Image1: TImage;
    _panelSuccess: TPanel;
    ememo: TMemo;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure AA_0569_btnCancelClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure ed_filenameChange(Sender: TObject);
    procedure ccConnectorConnect(Sender: TObject;
      Socket: TCustomWinSocket);
    procedure ccConnectorDisconnect(Sender: TObject;
      Socket: TCustomWinSocket);
    procedure ccConnectorError(Sender: TObject; Socket: TCustomWinSocket;
      ErrorEvent: TErrorEvent; var ErrorCode: Integer);
    procedure ccConnectorRead(Sender: TObject; Socket: TCustomWinSocket);
    procedure AA_0567_btn_goClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Déclarations privées }
  public
    vZunderComNODA : TTreeNode;
  end;



implementation

uses _uc_refs_consts, _uc_refs_vars, _uc_funcs, _uc_ip_codecs, _uc_GuiLanG;

{$R *.DFM}

//------------------------------------------------------------------------------
procedure T_FAddXoc.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action:=caFree;
end;

//------------------------------------------------------------------------------
procedure T_FAddXoc.AA_0569_btnCancelClick(Sender: TObject);
begin
close;
end;

//------------------------------------------------------------------------------
procedure T_FAddXoc.FormShow(Sender: TObject);
begin


AA_0568_eTita.Caption:=format(AA_0568_eTita.Caption,[vZunderComNODA.Text]);

end;

//------------------------------------------------------------------------------
procedure T_FAddXoc.ed_filenameChange(Sender: TObject);
begin

AA_0567_btn_go.Enabled:= (ed_filename.Text<>'') and
                         (ed_filesize.Text<>'') and
                         (AA_0511_CmXocCategs.Text<>'') and
                         (ed_desc.Text<>'') and
                         (ed_file_http_url.Text<>'');
end;

//------------------------------------------------------------------------------
procedure T_FAddXoc.ccConnectorConnect(Sender: TObject; Socket: TCustomWinSocket);
var
ss,sParams,sNik:string;
begin

eStat.Caption:=___ccc__0008__Connected;

if (AA_0575_echeck_nik.Checked) then sNik:=_VV_LOCAL_USER_NIKO else sNik:='NA';
(*

F_FILE_NAME,
F_FILE_SIZE,
F_FILE_URL,
F_FILE_DESCRIPTION,
F_FILE_ADDED_BY_USER_ID,
F_FILE_ADDED_BY_USER_NICKNAME,
F_FILE_CATEGORY

*)

sParams:='e=_T3'+
         '&Fnm='+TIpCodecs.HTTPEncode(ed_filename.Text)+
         '&Fsz='+TIpCodecs.HTTPEncode(ed_filesize.Text)+
         '&Fur='+TIpCodecs._EnCodeTheHEXStringV2(ed_file_http_url.Text)+
         '&Fds='+TIpCodecs.HTTPEncode(ed_desc.Text)+
         '&Fud='+_VV_LOCAL_USER_PC_ID+
         '&Fun='+TIpCodecs.HTTPEncode(sNik)+
         '&Fct='+IntToStr(AA_0511_CmXocCategs.ItemIndex+1)
         ;




        ss:='GET '+vZunderComNODA._EXO_NODE_PATH_TX+'?'+sParams+' HTTP/1.0'+ret+
            'User-Agent: '+_C_EXOSEE_WEB_TEK_USER_MERDA+ret+
            'Host: '+vZunderComNODA._EXO_NODE_USER_IP+ret+
            'Connection: close'+ret+ret;


Socket.SendText(ss);

end;

//------------------------------------------------------------------------------
procedure T_FAddXoc.ccConnectorDisconnect(Sender: TObject; Socket: TCustomWinSocket);
var
_StrDATA,sID,sXocLink:String;
begin

eStat.Caption:='.';
AA_0569_btnCancel.Enabled:=true;
AA_0567_btn_go.Enabled:=true;

_StrDATA:=Socket._StokenStr;

//ShowMessage(_StrDATA);


if (_StrDATA='') then
begin
ShowMessage(___ccc__0079__ConnectionError+ret+ret+___ccc__0080__CheckYourInternet);
exit;
end;




   if pos('_SC_462',_StrDATA)>0 then
   begin
   sID:=GimeStringBetween(_StrDATA,'[',']');
   //ShowMessage(sID);
   sID:=IntToHex(StrToInt64Def(sID,0)+687,0);

   sXocLink:=LowerCase(vZunderComNODA._EXO_NODE_COM_IDX)+'FC7A82EC'+sID+'/'+ed_filename.Text;


   sXocLink:=StringReplace(sXocLink,'http://','xoc://',[]);
   //ShowMessage(sXocLink);

   _panelSuccess.Visible:=True;
   AA_0568_eTita.Caption:=___ccc__0097__XocInfoAddedOk;
   AA_0568_eTita.Font.Color:=clGreen;

   ememo.Lines.Add(ret+
                   ___ccc__0095__GeneratedXOCLinks+ret+
                   sXocLink+ret+
                   ret+
                   ___ccc__0096__GeneratedHtmlXOCLinks+ret+
                   '<A HREF="'+sXocLink+'">'+ed_filename.Text+'</A>');

   AA_0567_btn_go.Visible:=false;
   eStat.Visible:=false;
   AA_0569_btnCancel.Caption:=___ccc__0072__Close;
   end
   else
   ShowMessage('Server_data_SC_462_error !');     //+ret+ret+  _StrDATA

end;

//------------------------------------------------------------------------------
procedure T_FAddXoc.ccConnectorError(Sender: TObject;
  Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
  var ErrorCode: Integer);
begin
ErrorCode:=0;
Socket.Close; // to  trigger OnDisconnect
end;

//------------------------------------------------------------------------------
procedure T_FAddXoc.ccConnectorRead(Sender: TObject;Socket: TCustomWinSocket);
begin
Socket._StokenStr:=Socket._StokenStr+Socket.ReceiveText;
ccConnector.Tag:=ccConnector.Tag+Socket.ReceiveLength;
eStat.Caption:=___ccc__0078__ReceivingData+IntToStr(ccConnector.Tag);
end;

//------------------------------------------------------------------------------
procedure T_FAddXoc.AA_0567_btn_goClick(Sender: TObject);
begin


eStat.Caption:=___ccc__0045__Connecting;
AA_0569_btnCancel.Enabled:=false;
AA_0567_btn_go.Enabled:=false;
Application.ProcessMessages;

ccConnector.Host_name         :=vZunderComNODA._EXO_NODE_USER_IP;
ccConnector.Port              :=vZunderComNODA._EXO_NODE_eSERIAL; // auto set in login
ccConnector.Socket._StokenStr :='';
ccConnector.Tag               :=0; // data length
ccConnector.Active            :=true;


end;

//------------------------------------------------------------------------------
procedure T_FAddXoc.FormCreate(Sender: TObject);
begin
GoSetLANG(Self); //----- go loadLang --- if ok  (1st here)
Caption:='ExoSee - '+___ccc__0563__AddXOC;
_panelSuccess.Top:=77;
end;

end.





../delphi71code/exosee-code-source/uf_add_xoc-pas..