_uc_tek_builder_func.pas

unit _uc_tek_builder_func;

interface

    uses Classes,Forms,Graphics,SysUtils,ComCtrls,registry,Dialogs;

Type


     TStartingComBUILDER = class
     public
     class procedure _goBuilderComTekData(sData,sComUrl,sDomainSEK,sPathSEKandTekFile:string;iPort:Integer;The_ZunderITEM:TListItem);
     class procedure _goBuilderComUsers(s:string;vDadaNode:TTreeNode);
     end;

var
__DynInterval:Integer=1000;

implementation

 uses unit1,_uc_funcs,_uc_i_builder,_uc_refs_vars,_uc_refs_consts,
      _uc_ip_codecs,_uf_xoc_model,_uf_web_model,_uc_GuiLanG;


//------------------------------------------------------------------------------
class procedure TStartingComBUILDER._goBuilderComTekData(sData,sComUrl,sDomainSEK,sPathSEKandTekFile:string;iPort:Integer;The_ZunderITEM:TListItem);
var
UVAN_DATA,sBuiltDATA,val:String;
i,p:integer;
DxxLIST:TStringList;
sWANS,sNATS,vComNAME,s,sComCHATurL,sComVSversion:string;
sIP:string[15];
IniComNODE,vXocNODE:TTreeNode;
reg:tregistry;
vCom_20_BOOLS:string[20];
FRM_xoc:T_FrameXOC;
begin

UVAN_DATA:=sData;
//FRM_xoc:=nil;



// password invalid
if (pos('_ER_407',UVAN_DATA)>0) then
begin
ShowMessage(___ccc__0053__AccessDenied+ret+ret+___ccc__0054__InvalidPassToAccess+sComUrl+ret+ret+
            ___ccc__0055__EnterComAndSetPass);
exit;
end;



// BANNED
if (pos('_ER_403',UVAN_DATA)>0) then
begin
ShowMessage(___ccc__0056__Banned+ret+ret+___ccc__0057__ComBannedYou+ret+'['+sComUrl+']');
exit;
end;



     if (pos('ïç¤ò',UVAN_DATA)>0) and (pos('C77F¤F8',UVAN_DATA)>0) then   // top to bottom !
     begin
     DxxLIST:=TStringList.Create;
     try
           //----------LAN/WAN-----proccess--------- cut handsome the wan
           p:=pos('ïç¤ò',UVAN_DATA);
           sWANS:=copy(UVAN_DATA,p,(pos('Øã£F2C15òE2',UVAN_DATA)-1)-p);  //ïç¤ò¢¾Ðüüö¸åüžò/¸ß常ߞ¸ü¾ò/
           DxxLIST.Text:=StringReplace(sWANS,'ò',ret,[rfReplaceAll]);  //ïç¤_¢¾Ðüüö¸åüž_¸ß常ߞ¸ü¾_
          // log(ret+'Ok',0); // :)

           for i:=1 to DxxLIST.Count-1 do    // direct from 1
           begin
            if length(DxxLIST[i])<11 then     // make sure less than 11
            begin
            sIP:=TIpCodecs.decry(DxxLIST[i]);  // MOYA !!!!     // chars to int 10
            sIP:=TIpCodecs.int_to_ip(sIP);   // int 10 to ip xx.xx.
            sBuiltDATA:=sBuiltDATA+ret+sIP;       // fill list
            //if (int_ip<>AA_LOCAL_USED_IP)then begin build_ip(int_ip,_COMMUNITY_NODE); end;  // GO
            end;
           end;

           //sx/ïç¤ò¢¾Ðüüö¸åüžò¸ß常ߞ¸ü¾ò____Øã£F2C15òE2.1384092504òE.21380092504òE2__C77F¤F8AA
           //----------NAT---------proccess------------
           p:=pos('Øã£F2C15òE2',UVAN_DATA);
           sNATS:=copy(UVAN_DATA,p,pos('C77F¤F8',UVAN_DATA)-p);  //Øã£F2C15ò//1380092504òE2C7FF8òE2
           DxxLIST.Text:=StringReplace(sNATS,'òE2',ret,[rfReplaceAll]);  //

           for i:=1 to DxxLIST.Count-1 do // direct from 1
           begin
            if length(DxxLIST[i])<11 then     // make sure less than 11
            begin
            sIP:=TIpCodecs.int_to_ip(DxxLIST[i]);   //  direct int to ip !! no decry !!!
            sBuiltDATA:=sBuiltDATA+ret+sIP;      // fill list
            //if (int_ip<>AA_LOCAL_USED_IP)then begin build_ip(int_ip,_COMMUNITY_NODE); end;  // GO
            end;
           end;

(*

$DTT     .= "°A".$_COMMUNITY_NAME.
            "°B".$_COMMUNITY_DESCRIPTION.
            "°C".$_COMMUNITY_ADMINISTRATOR_ID.
            "°D".$_COMMUNITY_MODERATOR_1_ID.
            "°E".$_COMMUNITY_MODERATOR_2_ID.
            "°F".$_COMMUNITY_XOC_FOLDER_ENABLED.
            "°G".$_COMMUNITY_XOC_FOLDER_PUBLIC_DOWNLOAD_ENABLED.
            "°H".$_COMMUNITY_XOC_FOLDER_PUBLIC_UPLOAD_ENABLED.
            "°I"."°J"."°K"."°L"."°M"."°N"."°O"."°P"."°Q"."°R".
            "°S"."°T"."°U"."°V".$_EXOSEE_SERVER_VERSION."°W";
*)


     //-----build com node
     vComNAME:=copy(UVAN_DATA,pos('°A',UVAN_DATA)+2,pos('°B',UVAN_DATA)-(pos('°A',UVAN_DATA)+2));

     sComVSversion:=copy(UVAN_DATA,pos('°V',UVAN_DATA)+2,pos('°W',UVAN_DATA)-(pos('°V',UVAN_DATA)+2)); // server version


     vCom_20_BOOLS:='00000000000000000000'; // fill



     s:=copy(UVAN_DATA,pos('°F',UVAN_DATA)+2,pos('°G',UVAN_DATA)-(pos('°F',UVAN_DATA)+2));
     if (s<>'') then
     vCom_20_BOOLS[1]:=s[1];  // _COMMUNITY_XOC_FOLDER_ENABLED



     s:=copy(UVAN_DATA,pos('°G',UVAN_DATA)+2,pos('°H',UVAN_DATA)-(pos('°G',UVAN_DATA)+2));
     if (s<>'') then
     vCom_20_BOOLS[2]:=s[1];  // _COMMUNITY_XOC_FOLDER_PUBLIC_DOWNLOAD_ENABLED



     s:=copy(UVAN_DATA,pos('°H',UVAN_DATA)+2,pos('°I',UVAN_DATA)-(pos('°H',UVAN_DATA)+2));
     if (s<>'') then
     vCom_20_BOOLS[3]:=s[1];  // _COMMUNITY_XOC_FOLDER_PUBLIC_UPLOAD_ENABLED

    

     s:=copy(UVAN_DATA,pos('°E',UVAN_DATA)+2,pos('°F',UVAN_DATA)-(pos('°E',UVAN_DATA)+2));
     if (s<>'') then
     vCom_20_BOOLS[4]:=s[1];  // _user_is registred at this com !
     (*
     1 = _COMMUNITY_XOC_FOLDER_ENABLED
     2 = _COMMUNITY_XOC_FOLDER_PUBLIC_DOWNLOAD_ENABLED
     3 = _COMMUNITY_XOC_FOLDER_PUBLIC_UPLOAD_ENABLED
     4 = registred user
     ....
     11 = internal  user-setting   x/11 = y/1  >> allow comHomepage
     12 = internal  user-setting
     13 = internal  user-setting
     *)
     vCom_20_BOOLS[11]:=The_ZunderITEM.pat_n[1];
     vCom_20_BOOLS[12]:=The_ZunderITEM.pat_n[2];
     vCom_20_BOOLS[13]:=The_ZunderITEM.pat_n[3];







     //ShowMessage(vCom_20_BOOLS);
     if (vComNAME='') then vComNAME:=sComUrl;

     IniComNODE:=is_COMMUNITY_in_HOME(sComUrl);
     if (IniComNODE=nil)then
     begin
     IniComNODE:=_FXOC_MAIN._eExplorerTV.Items.AddChild(_TV_NODE_OF_COMMUNITIES,vComNAME);
     IniComNODE._EXO_NODE_X_LEVEL:='C';

     IniComNODE._EXO_NODE_COM_IDX :=sComUrl;               // full com url
     IniComNODE._EXO_NODE_USER_ID :=The_ZunderITEM.uzr_id; // grab com pass  ( user-input )
     IniComNODE._EXO_NODE_USER_IP :=sDomainSEK;             // domain sek
     IniComNODE._EXO_NODE_PATH_TX :=sPathSEKandTekFile;     // path sek + tek_file   /fr/_xoc_com.php
     IniComNODE._EXO_NODE_eSERIAL :=iPort;                  // Port
    
     IniComNODE._EXO_NODE_IS_STOPING :=false;  // init


     IniComNODE.ImageIndex:=70;
     IniComNODE._EXO_NODE_20BOOLS := vCom_20_BOOLS;


     // com description
     IniComNODE._EXO_NODE_MESSAGE:=copy(UVAN_DATA,pos('°B',UVAN_DATA)+2,pos('°C',UVAN_DATA)-(pos('°B',UVAN_DATA)+2));
     IniComNODE._EXO_NODE_MESSAGE:=IniComNODE._EXO_NODE_MESSAGE+ret+sep+ret+'VS/'+sComVSversion; //+ version


     // com admin + moderators AAAAAAA:BBBBBBB.CCCCCCC.DDDDDDD
     IniComNODE._EXO_NODE_COUNTRY:=copy(UVAN_DATA,pos('°C',UVAN_DATA)+2,pos('°D',UVAN_DATA)-(pos('°C',UVAN_DATA)+2))+
                                  ':'+copy(UVAN_DATA,pos('°D',UVAN_DATA)+2,pos('°E',UVAN_DATA)-(pos('°D',UVAN_DATA)+2));



     The_ZunderITEM.Delete; // delete item from Start box



    
     // xoc-folder node if enabled
     if (IniComNODE._EXO_NODE_20BOOLS[1]='1') then
     begin
    
     vXocNODE:=_FXOC_MAIN._eExplorerTV.Items.AddChildFirst(IniComNODE,'XOC-DB');
     vXocNODE._EXO_NODE_COM_IDX:=sComUrl;
     vXocNODE._EXO_NODE_X_LEVEL:='X';  // xoc
     vXocNODE.ImageIndex:=43;

     //now ok go set XOC_Tab
     FRM_xoc:=CreateCom_XOC_Tab(vComNAME,IniComNODE);
        if (FRM_xoc<>nil) then
        begin

        Inc(__DynInterval,1000);
        FRM_xoc.TM_COM_ICONNER.Tag:=1; // enable com_logo_get
        FRM_xoc.TM_COM_ICONNER.Interval:=__DynInterval; // 3 sec;
        FRM_xoc.TM_COM_ICONNER.Enabled:=true;

        FRM_xoc.eComFORUM.Hint:=copy(UVAN_DATA,pos('°I',UVAN_DATA)+2,pos('°J',UVAN_DATA)-(pos('°I',UVAN_DATA)+2));
        FRM_xoc.AA_0506_eComRULES.Hint:=copy(UVAN_DATA,pos('°J',UVAN_DATA)+2,pos('°K',UVAN_DATA)-(pos('°J',UVAN_DATA)+2));

        if (FRM_xoc.eComFORUM.Hint<>'') then FRM_xoc.eComFORUM.Font.Color:=clHighlight;
        if (FRM_xoc.AA_0506_eComRULES.Hint<>'') then FRM_xoc.AA_0506_eComRULES.Font.Color:=clHighlight;

        FRM_xoc.eComFORUM.Caption:=___ccc__0527__Forum;

        FRM_xoc.AA_0565_eComLINKS.Caption:=Format(FRM_xoc.AA_0565_eComLINKS.Caption,[IniComNODE.text]);

        FRM_xoc.USER_LOCAL_IS_ADMINISTRATOR := (pos(_VV_LOCAL_USER_PC_ID,IniComNODE._EXO_NODE_COUNTRY)=1);
        FRM_xoc.USER_LOCAL_IS_MODERATOR     := (pos(_VV_LOCAL_USER_PC_ID,IniComNODE._EXO_NODE_COUNTRY)>1);
        FRM_xoc.USER_LOCAL_IS_REGISTRED     := (IniComNODE._EXO_NODE_20BOOLS[4]='1'); // is registred at com
       

        FRM_xoc.eComUSER.Caption:=_VV_LOCAL_USER_NIKO;


            if (FRM_xoc.USER_LOCAL_IS_ADMINISTRATOR) then
            begin
            FRM_xoc.eComUSER.Font.Color:=$000000BB; // red
            IniComNODE._EXO_NODE_XP_TYPE:='A'; // Admin reper
            end
            else
            if (FRM_xoc.USER_LOCAL_IS_MODERATOR) then
            begin
            FRM_xoc.eComUSER.Font.Color:=$00007CF9; // orange
            IniComNODE._EXO_NODE_XP_TYPE:='M'; // Mod reper
            end
            else
            if (FRM_xoc.USER_LOCAL_IS_REGISTRED) then FRM_xoc.eComUSER.Font.Color:=$00009500;   // green

        end;

     Application.ProcessMessages;
     end;




           //------------save com name
           Reg := TRegistry.Create;
           try
           if Reg.OpenKey('\Software\'+_APPLICATION_REGISTRY_NAME+'\Communities',true) then
           begin
           val:=reg.ReadString(sComUrl);
           val:=SetStringBetween(val,'$µA','$µB',vComNAME);
           reg.WriteString(sComUrl,val);
           Reg.CloseKey;
           end;
           finally Reg.Free; end;

     end;







     _TV_NODE_OF_COMMUNITIES.Expand(false);
     IniComNODE.Expand(false);


     sComCHATurL:=copy(UVAN_DATA,pos('°K',UVAN_DATA)+2,pos('°L',UVAN_DATA)-(pos('°K',UVAN_DATA)+2));

     IniComNODE._EXO_NODE_PATH_NB:=sComCHATurL;
     //now ok go set com web  if user-set-ENABLED !
     if (IniComNODE._EXO_NODE_20BOOLS[11]='1') then CreateComsOwnWebTab(vComNAME,sComUrl,sComCHATurL);


     //Application.ProcessMessages;



    


     _FXOC_MAIN.TheLOGGER.Log(vComNAME+' : '+___ccc__0058__Started,70);


    

     _goBuilderComUsers(sBuiltDATA,IniComNODE);
     //fm.tm_vrs_info.Enabled:=pos('C77F¤F8AACAF39D',X_UVAN_PUB_DATA)>0;   // new version if any
     finally DxxLIST.Free; end;
     end
     else
     _FXOC_MAIN.TheLOGGER.Log(___ccc__0059__ComOffline+' : '+sComUrl,1);


    


end;

//------------------------------------------------------------------------------
class procedure TStartingComBUILDER._goBuilderComUsers(s:string;vDadaNode:TTreeNode);
var
xx:TStringList;
i:integer;
sIPI:string[15];
BLDUZER : T_i_builder_THREAD;
begin



  xx:=TStringList.Create;
  try
  xx.Text:=s;

     for i:=0 to xx.Count-1 do
     begin
     sIPI:=xx[i];
     //
         (* *)
         // avoid Local_ips-------------------------
         // can be too , a tzz user uppa a tzz ip that is mine in ips
         if (sIPI='') or
            (pos('.',sIPI)=0) or
            (sIPI='0.0.0.0') or
            (sIPI='127.0.0.1') or
            (pos(sIPI,_VV_LOCAL_USER_IP_OTHERS)>0) then Continue;
         //-------------------------------------------
       //ShowMessage(sIPI);
       
       BLDUZER:=T_i_builder_THREAD.Create;
       BLDUZER._newUzoPP:=sIPI;
       BLDUZER._comADRiDX:=vDadaNode._EXO_NODE_COM_IDX;
       BLDUZER._dadyComNode:=vDadaNode;
       BLDUZER.Resume;


     end;

  finally xx.Free; end;


end;


end.





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