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.
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.