home *** CD-ROM | disk | FTP | other *** search
/ napalm.napnet.hu / 2015-02-12.napalm.napnet.hu.tar / napalm.napnet.hu / programok / kommunikacio / mpp700.exe / comm.smarticq < prev    next >
Text File  |  2003-06-22  |  29KB  |  817 lines

  1. ; ______________________________________________________________________________________________________
  2. ;
  3. ;   SmartICQ v1.2 
  4. ;   copyright (c) 2001-03 tronicer
  5. ;
  6. ;   http://www.smarticq.com/
  7. ; _________________________________________________________________________________________________________
  8. ;
  9. ;  communication functions
  10. ; _________________________________________________________________________________________________________
  11. ;
  12.  
  13. #_icq.nslookup on
  14. #_icq.nslookup end
  15.  
  16. alias icqdebug {
  17.   window -zk0 @ICQDEBUG $iif($version > 6.02,dat\flower.ico) 
  18. }
  19. alias viewicqdebug { run notepad $+(",$_icq.dir,dat\debug.txt,") }
  20. menu @icqdebug {
  21.   Clear:clear @icqdebug
  22. }
  23.  
  24. alias _icq.dllf { return $+(",$_icq.dir,dat\icq.dll") }
  25.  
  26. alias _icq.dll {
  27.   if ($1 == start) { 
  28.     ; do not change anything here. or your computer may blow up.. ;)
  29.     ; .. not really. but smarticq will stop working..
  30.     var %d = $dll($_icq.dllf,ICQ_Start,COPYRIGHT 2002 TRONICER - MADE FOR SMARTICQ)
  31.     var %e = $dll($_icq.dllf,ICQ_Config,MSGLEN 650)
  32.     .remove $+(",$_icq.dir,dat\debug.txt,")
  33.   }
  34.  
  35.   if ($1 == adduinlist) {
  36.     var %d = $dll($_icq.dllf,ICQ_AddUINlist,$2-)
  37.   }
  38.   if ($1 == clearuinlist) {
  39.     var %d = $dll($_icq.dllf,ICQ_ClearUINlist,$null)
  40.   }
  41.   if ($1 == addcontact) { var %d = $dll($_icq.dllf,ICQ_AddContact,$2) }
  42.   if ($1 == remcontact) { var %d = $dll($_icq.dllf,ICQ_RemContact,$2) }
  43.   if ($1 == addvisible) { var %d = $dll($_icq.dllf,ICQ_AddVisible,$2) }
  44.   if ($1 == remvisible) { var %d = $dll($_icq.dllf,ICQ_RemVisible,$2) }
  45.   if ($1 == addinvisible) { var %d = $dll($_icq.dllf,ICQ_AddInvisible,$2) }
  46.   if ($1 == reminvisible) { var %d = $dll($_icq.dllf,ICQ_RemInvisible,$2) }
  47.  
  48.   if ($1 == disconnect) {
  49.     .timer_icq.reconnect off
  50.     var %d = $dll($_icq.dllf,ICQ_Disconnect,$null)
  51.   }
  52.  
  53.   if ($1 == connect) {
  54.     var %file = $+(",$_icq.dir,$_icq.a,\settings.ini")
  55.     if ($readini(%file,settings,connections_proxy)) {
  56.       var %server = $readini(%file,settings,connections_proxy.host)
  57.       var %port =  $readini(%file,settings,connections_proxy.port)
  58.       var %user = $readini(%file,settings,connections_proxy.user)
  59.       var %pass = $decode($readini(%file,settings,connections_proxy.pass),m)
  60.  
  61.       if (%user == $null) { %user = __NOUSERNAME }
  62.       if (%pass == $null) { %pass = __NOPASSWORD }
  63.       var %d = $dll($_icq.dllf,ICQ_Proxy,%server %port %user %pass)
  64.       ;$readini(%file,settings,connections_proxy.type)    
  65.     }
  66.     else {
  67.       var %d = $dll($_icq.dllf,ICQ_Proxy,off)
  68.     }
  69.  
  70.     .timer__icq!a* off
  71.     .enable #_icq.FL
  72.     var %file = $+(",$_icq.dir,$_icq.a,\settings.ini")
  73.     var %ip = $readini(%file,settings,connections_host) 
  74.     var %port = $readini(%file,settings,connections_port)
  75.     var %passwd = $_icq.passwd($readini(%file,account,passwd))
  76.     if (%passwd == $null) {
  77.       %passwd = $input(Enter Your Password:,pq,SmartICQ - Login)
  78.       if (%passwd == $null) {
  79.         hadd smarticq status offline
  80.         _icq.drw_obj -show icqbutton up
  81.         return
  82.       }
  83.     }
  84.  
  85.     if (%ip == $null) { $input(No server address found!,ow,SmartICQ - ERROR) | return }
  86.     if (%port == $null) { $input(No server port found!,ow,SmartICQ - ERROR) | return }
  87.     if ($_icq.a == $null) { $input(No account found!,ow,SmartICQ - ERROR) | return }
  88.     if ($2 == $null) { tokenize 32 $1 online }
  89.     _icq.systemtext connecting...
  90.  
  91.     if ($longip(%ip) == $null) { 
  92.       hadd smarticq connect-info %port $_icq.a %passwd $replace($2,free4chat,f4c)
  93.       hadd smarticq dns-server %ip 
  94.       .dns %ip 
  95.       return 
  96.     }
  97.     var %d = $dll($_icq.dllf,ICQ_Connect,%ip %port $_icq.a %passwd $2) 
  98.  
  99.     if (%d == S_OK) {
  100.       hadd smarticq status $2
  101.       _icq.drw_obj -show icqbutton up
  102.     }
  103.     ;.timer_icq.connect_check -o 1 40 _icq.connect_check
  104.   }
  105.  
  106.   if ($1 == register) {
  107.     var %file = $+(",$_icq.dir,$_icq.a,\settings.ini")
  108.     var %ip = $readini(%file,settings,connections_host) 
  109.     var %port = $readini(%file,settings,connections_port)
  110.     if (%ip == $null) { %ip = login.icq.com }
  111.     if (%port == $null) { %port = 5190 }
  112.     hadd smarticq newaccount.pass $2-
  113.     var %d = $dll($_icq.dllf,ICQ_Register,%ip %port $2-) 
  114.   }  
  115.  
  116.   if ($1 == reqroster) {
  117.     var %d = $dll($_icq.dllf,ICQ_ReqRoster,$NULL) 
  118.   }
  119.   if ($1 == url) {
  120.     var %d = $dll($_icq.dllf,ICQ_Url,$2-) 
  121.   }
  122.   if ($1 == msg) {
  123.     var %d = $dll($_icq.dllf,ICQ_Msg,$2-) 
  124.   }
  125.   if ($1 == offlinemsg) {
  126.     var %d = $dll($_icq.dllf,ICQ_OfflineMsg,$2-) 
  127.   }
  128.   if ($1 == reqawaymsg) {
  129.     var %d = $dll($_icq.dllf,ICQ_ReqAwayMsg,$2-) 
  130.   }
  131.   if ($1 == SearchUIN) {
  132.     var %d = $dll($_icq.dllf,ICQ_SearchByUIN,$2) 
  133.   }
  134.   if ($1 == UpdateCL) {
  135.     var %d = $dll($_icq.dllf,ICQ_UpdateCL,$2-) 
  136.   }
  137.   if ($1 == status) {
  138.     .signal smarticq.mystatus $2
  139.     var %d = $dll($_icq.dllf,ICQ_SetStatus,$2) 
  140.   }
  141.   if ($1 == sendmeta) {
  142.     var %d = $dll($_icq.dllf,ICQ_SendMeta,meta) 
  143.   }  
  144.   if ($1 == clearmeta) {
  145.     var %d = $dll($_icq.dllf,  ICQ_ClearMeta,$null) 
  146.   }  
  147.   if ($1 == setmeta) {
  148.     var %d = $dll($_icq.dllf,ICQ_SetMeta,$2-) 
  149.   }  
  150.   if ($1 == setwp) {
  151.     var %d = $dll($_icq.dllf,ICQ_SetWp,$2-) 
  152.   }
  153.   if ($1 == sendwp) {
  154.     var %d = $dll($_icq.dllf,ICQ_SendWp,a) 
  155.   }
  156.  
  157.   if ($1 == reqinfo) {
  158.     var %d = $dll($_icq.dllf,ICQ_ReqInfo,$2-) 
  159.   }  
  160.   if ($1 == auth) {
  161.     var %d = $dll($_icq.dllf,ICQ_Auth,$2-) 
  162.   }
  163.   if ($1 == addedyou) {
  164.     var %d = $dll($_icq.dllf,ICQ_AddedYou,$2-) 
  165.   }
  166.   if ($1 == setawaymsg) {
  167.     var %d = $dll($_icq.dllf,ICQ_SetAwayMsg,$2-) 
  168.   }  
  169.   if ($1 == setsecurity) {
  170.     var %d = $dll($_icq.dllf,ICQ_SetSecurity,$2-) 
  171.   }  
  172.   if ($1 == setmyinfo) {
  173.     var %d = $dll($_icq.dllf,ICQ_SetMyInfo,$2-) 
  174.   }  
  175.   if ($1 == sms) {
  176.     var %d = $dll($_icq.dllf,ICQ_SMS,$2-) 
  177.   }
  178.  
  179.   if ($1 == unload) {
  180.     dll -u $_icq.dllf 
  181.     return
  182.   }
  183.  
  184.   var %command = $1-
  185.   tokenize 32 %d
  186.  
  187.   write $+(",$_icq.dir,dat\debug.txt,") ( $+ $asctime($ctime,HH:nn:ss) $+ ) -> %command :: $1-
  188.   if ($window(@icqdebug)) { aline -pi2 @ICQDEBUG ( $+ $asctime($ctime,HH:nn:ss) $+ ) -> %command :: $1- }
  189.  
  190.   if ($1 == E_FAILED) { 
  191.     if ($2 == ALREADY_STARTED) { return }
  192.     if ($2 == NOT_CONNECTED) {
  193.       if ($gettok(%command,1,32) == disconnect) { return }
  194.       if ($gettok(%command,1,32) == setsecurity) { return }
  195.       _icq.qs _icq.dll %command
  196.       return
  197.     }
  198.     if ($gettok(%command,1,32) == setmeta) { return }
  199.     if ($gettok(%command,1,32) == setwp) { return }
  200.     if ($gettok(%command,1,32) == connect) { return }
  201.     echo -a [SmartICQ] %d
  202.   }
  203.  
  204.   return %d
  205. }
  206.  
  207. on *:dns:{
  208.   if ($hget(smarticq)) {
  209.     if ($dns(0)) && ($hget(smarticq,$+(dns-,$dns(1).ip))) {
  210.       haltdef
  211.       _icq.adduserinfo $hget(smarticq,$+(dns-,$dns(1).ip)) DNS $dns(1).addr
  212.     }
  213.     if ($+(dns-,$dns(1).ip)) { hdel smarticq $+(dns-,$dns(1).ip) }
  214.  
  215.     if ($hget(smarticq,dns-server) != $null) {
  216.       if ($dns(1) != $null) { 
  217.         var %q = $dns(1).ip $hget(smarticq,connect-info)
  218.         var %d = $dll($_icq.dllf,ICQ_Connect,%q) 
  219.         if (%d == S_OK) {
  220.           hadd smarticq status $gettok($hget(smarticq,connect-info),4,32)
  221.           _icq.drw_obj -show icqbutton up
  222.         }
  223.         else { .signal -n icq.login E_FAILED RESOLVE_IP }
  224.       }
  225.       else { .signal -n icq.login E_FAILED RESOLVE_HOSTNAME }
  226.       hdel smarticq connect-info
  227.       hdel smarticq dns-server
  228.       haltdef
  229.     }
  230.   }
  231. }
  232.  
  233.  
  234.  
  235. alias _icq.viewdebug { run notepad $+(",$_icq.dir,dat\debug.txt,") }
  236.  
  237. alias -l _icq.sockerror {
  238.   hadd smarticq status offline 
  239.   _icq.drw_obj -show icqbutton up
  240.   _icq.systemtext
  241.   var %d = $$input($1-,ow,SmartICQ - ERROR)
  242.   halt
  243. }
  244.  
  245. alias _icq.connect_check {
  246.   _icq.dll disconnect
  247.   _icq.systemtext
  248.   hadd smarticq signon_time 0
  249.   hadd smarticq status offline 
  250.   _icq.drw_obj -show icqbutton up
  251. }
  252.  
  253. alias -l _icq.disconnected {
  254.   while ($fline(@smarticq-gui,u*,0,1)) { dline -l @smarticq-gui $fline(@smarticq-gui,u*,1,1) }
  255.   while (1) {
  256.     if ($gettok($line(@smarticq-gui,2,1),3,1) == offline) || ($gettok($line(@smarticq-gui,2,1),4,1) == offline) { break }
  257.     _icq.upd_uin $gettok($line(@smarticq-gui,2,1),3,1) -sh offline -silent
  258.   }
  259.   _icq.drw_cl $hget(smarticq,scroll)
  260.   hadd smarticq signon_time 0
  261.  
  262.   if ($hget(smarticq,status) != offline) { var %status = $ifmatch }
  263.   else { var %status = $hget(smarticq,reconnect-status) }
  264.  
  265.   hadd smarticq status offline 
  266.   _icq.drw_obj -show icqbutton up
  267.   _icq.autoaway -off
  268.   .signal smarticq.disconnect 
  269.  
  270.   if ($readini($+(",$_icq.dir,$_icq.a,\settings.ini"),settings,connections_reconnect)) { 
  271.     .timer_icq.reconnect -o 1 10 _icq.login %status -reconnect | _icq.systemtext wait for reconnect | return
  272.   }
  273.   if ($input(Disconnected! $+ $crlf $+ Do you want to reconnect?,264,SmartICQ - Disconnected)) { hadd smarticq status online | _icq.drw_obj -show icqbutton up | _icq.login }
  274.   _icq.systemtext
  275. }
  276.  
  277. alias -l _icq.check_if_on_list {
  278.   ; checks if uin is on your list already
  279.   ; /_icq.check_if_on_list <uin>
  280.   var %wm = $fline(@SmartICQ-group,$+(*,$chr(1),$1,$chr(1),*),0,1)
  281.   if (%wm == 0) && ($readini($+(",$_icq.dir,$_icq.a,\settings.ini"),settings,contactlist_showunknown)) { 
  282.     if ($1 != $_icq.a) { _icq.add_cl uu $1 unknown $1 | _icq.drw_cl $hget(smarticq,scroll) }
  283.   }
  284. }
  285.  
  286. on *:signal:icq.*:{
  287.   if ($signal == icq.mem) { return }
  288.  
  289.   write $+(",$_icq.dir,dat\debug.txt,") ( $+ $asctime($ctime,HH:nn:ss) $+ ) <- $+(:,$signal,:) $1-
  290.   if ($window(@icqdebug)) { aline -pi2 @ICQDEBUG ( $+ $asctime($ctime,HH:nn:ss) $+ ) <- $+(:,$signal,:) $1- }
  291.  
  292.   if ($signal == icq.critical) {
  293.     echo $colour(highlight) -t [SmartICQ] CRITICAL ERRROR - TERMINATING CLIENT..
  294.     _icq.shutdown
  295.   }
  296.  
  297.   if ($signal == icq.sock) {
  298.     if ($1 == DISCONNECTED) { _icq.disconnected | return }
  299.   }
  300.  
  301.   if ($signal == icq.search) {
  302.     if ($3 == 1365) {
  303.  
  304.       if (!$window(@smarticq-search)) || ($_icq.HIDE_WP) { 
  305.         return
  306.       }
  307.  
  308.       if ($2 == 0) {
  309.         rline @smarticq-search $line(@smarticq-search,0) __[finished] $+ $str(_,150)
  310.         return
  311.       }
  312.       hadd smarticq $+(search-,$2,-,$1) $4-
  313.       hadd smarticq $+(search-,$2,-,$1) $4-
  314.       hadd smarticq $+(search-,$2,-,$1) $4-
  315.       hadd smarticq $+(search-,$2,-,$1) $4-
  316.       if ($1 == misc) {
  317.         var %nick = $hget(smarticq,$+(search-,$2,-,nick))
  318.         var %first = $hget(smarticq,$+(search-,$2,-,first))
  319.         var %last = $hget(smarticq,$+(search-,$2,-,last))
  320.         var %email = $hget(smarticq,$+(search-,$2,-,email))
  321.         var %misc = $hget(smarticq,$+(search-,$2,-,misc))
  322.         var %line = $calc($line(@smarticq-search,0) -1)
  323.         iline @smarticq-search %line $2 $chr(9) %nick $chr(9) %first $chr(9) %last $chr(9) %email
  324.         hdel smarticq $+(search-,$2,-,$1) 
  325.         hdel smarticq $+(search-,$2,-,$1) 
  326.         hdel smarticq $+(search-,$2,-,$1) 
  327.         hdel smarticq $+(search-,$2,-,$1) 
  328.       }
  329.     }
  330.   }
  331.  
  332.   if ($signal == icq.reg) {
  333.     if ($1 == E_FAILED) {
  334.       if ($2 == ACCOUNT_REFUSED) { did -a _icq.newaccount 4 Registration error! | return }
  335.     }
  336.     if ($1 == S_OK) {
  337.       if ($2 == CONNECTED) { did -a _icq.newaccount 4 Getting UIN... }
  338.     }
  339.     if ($1 == SUCCESS) {
  340.       did -a _icq.newaccount 4 Account Created!
  341.       did -a _icq.newaccount 5 UIN: $2
  342.       did -a _icq.newaccount 6 Password: $hget(smarticq,newaccount.pass)
  343.       did -a _icq.newaccount 2 Close
  344.  
  345.       if ($did(_icq.newaccount,104).state) { var %duh = $_icq.createnewaccount($2,$did(_icq.newaccount,102).text,$hget(smarticq,newaccount.pass)) }
  346.       else { var %duh = $_icq.createnewaccount($2,$did(_icq.newaccount,102).text) }
  347.  
  348.       var %file = $+(",$_icq.dir,$2,\settings.ini")
  349.       writeini %file account fname $did(_icq.newaccount,100).text
  350.       writeini %file account lname $did(_icq.newaccount,101).text
  351.       writeini %file account nick $did(_icq.newaccount,102).text
  352.       writeini %file account e-mail $did(_icq.newaccount,103).text
  353.       writeini %file account _NEW_ 1
  354.  
  355.       if ($dialog(_icq.am)) { 
  356.         did -a _icq.am 1 $2 $did(_icq.newaccount,102).text 
  357.       }
  358.       hdel smarticq newaccount.pass
  359.     }
  360.   }
  361.  
  362.   if ($signal == icq.status) {
  363.     if ($_icq.statusuin($1) != $replace($2,free4chat,f4c)) {
  364.       tokenize 32 $1-8 $longip($9) $10 $11 $12
  365.       if ($_icq.statusuin($1) == offline) {
  366.         var %client
  367.         if ($7 == 5) { %client = ICQ 99 }
  368.         if ($7 == 6) { %client = ICQ 200 }
  369.         if ($7 == 7) { %client = ICQ 2001 }
  370.         if ($7 == 8) { %client = ICQ 2002/03 }
  371.         if ($7 == 9) { %client = ICQ lite }
  372.         if ($9 == 59.167.110.46) || ($9 == 59.167.110.46) { %client = SmartICQ }
  373.         if ($9 == 83.84.85.0) { %client = SmartICQ }
  374.         if ($9 == 255.255.255.190) { %client = alicq }
  375.         if ($9 == 59.117.172.9) { %client = Trillian }
  376.         if ($9 == 61.225.61.28) { %client = SIM }        
  377.         if ($9 == 0.128.0.0) { %client = licq }
  378.         if ($9 == 255.255.255.255) { %client = Miranda }
  379.         if ($9 == 255.255.255.143) { %client = StrICQ }
  380.         if ($9 == 255.255.255.66) { %client = &Rq }
  381.         if ($9 == 255.255.255.171) { %client = YSM }
  382.         _icq.adduserinfo $1 . CLIENT %client
  383.         _icq.adduserinfo $1 . PROTOVER $7
  384.         _icq.adduserinfo $1 . ONLINETIME $iif($11 != 0,$11)
  385.         if ($3 != 0.0.0.0) && ($3) {
  386.           if ($group(#_icq.nslookup) == on) {
  387.             .dns $3
  388.             hadd smarticq $+(dns-,$3) $1
  389.           }
  390.         }
  391.       }
  392.       _icq.upd_uin $1 -s $replace($2,free4chat,f4c)
  393.       _icq.adduserinfo $1 . IP $3
  394.       _icq.adduserinfo $1 . i-IP $4
  395.       _icq.adduserinfo $1 . PORT $5
  396.     }
  397.  
  398.     ;_icq.adduserinfo $1 idle $duration($calc($longip($12) /1000))
  399.     return
  400.   }
  401.  
  402.   if ($signal == icq.message) {
  403.     var %flag = $2    
  404.     tokenize 32 $1 $3-
  405.     if ($2 == $+($chr(1),CTCP)) && ($right($2-,1) == $chr(1)) { 
  406.       tokenize 32 $1 $right($left($2-,-1),-1)
  407.       if ($3 == reply) { .signal -n smarticq.ctcpreply $1 $3- }
  408.       else { .signal -n smarticq.ctcp $1 $3- }
  409.  
  410.       if (!$_icq.CTCP_DO_NOT_ECHO) {
  411.         if ($3 == reply) {
  412.           if ($4 == PING) { tokenize 32 $1-4 $calc(($ticks - $5) /1000) secs }
  413.           echo $colour(ctcp) -s $timestamp [[ $+ $_icq.g($1,SHOW,$1) $+ @ICQ $upper($4) $3 $+ ]: $5-
  414.           return
  415.         }
  416.         echo $colour(ctcp) -s $timestamp [[ $+ $_icq.g($1,SHOW,$1) $+ @ICQ $upper($3) $+ ]]
  417.       }
  418.       if (!$_icq.CTCP_DO_NOT_REPLY) {
  419.         if ($3 == PING) { _icq.ctcpreply $1 PING $4 }
  420.         if ($3 == VERSION) { _icq.ctcpreply $1 VERSION SmartICQ v $+ $_icq.version }
  421.       }
  422.       return 
  423.     }
  424.  
  425.     .signal -n smarticq.message $1-
  426.     if (!$_icq.DO_NOT_OPEN_MSG_WINDOWS) {
  427.       _icq.print_msg $iif(%flag == 80,-mass) $iif(%flag == 3,-auto) $1 $2-
  428.     }
  429.     return
  430.   }
  431.  
  432.   if ($signal == icq.offline) {
  433.     if ($1 == msg) {
  434.       .signal -n smarticq.message -offline $2 $+(,$asctime($ctime($3-4),yyyy/mm/dd HH:nn),) $5-
  435.       if (!$_icq.DO_NOT_OPEN_MSG_WINDOWS) {
  436.         _icq.print_msg -offline $2 $+(,$asctime($ctime($3-4),yyyy/mm/dd HH:nn),) $5-
  437.       }
  438.       return
  439.     }
  440.   }
  441.  
  442.   if ($signal == icq.ackmessage) {
  443.     _icq.dlg_awaymsg $1
  444.     var %dname = $+(_icq.awaymsg,$1)
  445.     if ($dialog(%dname)) {
  446.       did -a %dname 13 $2-
  447.       did -a %dname 17 $1
  448.       did -a %dname 18 $_icq.g($1,SHOW,$1)
  449.       did -a %dname 19 $_icq.statusuin($1)
  450.     }
  451.     return
  452.   }
  453.  
  454.   if ($signal == icq.pager)  || (($signal == icq.offline) && ($1 == pager)) {
  455.     if ($signal == icq.offline) { tokenize 32 $2- }
  456.     tokenize 32 $replace($1-,$crlf,$chr(32))
  457.     var %name = $gettok($1-,1,254)    
  458.     var %email = $gettok($1-,2,254)    
  459.     var %ip = $gettok($gettok($1-,4,254),3,32)
  460.     var %msg = $gettok($gettok($1-,4,254),4-,32)
  461.     .signal -n smarticq.pager $+(%email,$chr(254),%ip,$chr(254),%name,$chr(254),%msg)
  462.     if (!$_icq.DO_NOT_ECHO_PAGER) {
  463.       _icq.print_pager $+(%email,$chr(254),%ip,$chr(254),%name,$chr(254),%msg)
  464.     }
  465.   }
  466.  
  467.   if ($signal == icq.auth) {
  468.     hadd smarticq systemnew 1
  469.     _icq.systemtext
  470.     if ($2 == addedyou) {
  471.       _icq.check_if_on_list $1
  472.       writeini $+(",$_icq.dir,$_icq.a,\system.ini") addedyou $1 $1
  473.     }
  474.     if ($2 == req) {
  475.       _icq.check_if_on_list $1
  476.       writeini $+(",$_icq.dir,$_icq.a,\system.ini") rqst $1 $iif($3 != $null,$3-,none)
  477.     }
  478.   }
  479.  
  480.   if ($signal == icq.url) || (($signal == icq.offline) && ($1 == url)) {
  481.     if ($signal == icq.offline) { tokenize 32 $2- }
  482.     .signal -n smarticq.url $1 $2-
  483.     if (!$_icq.DO_NOT_ECHO_URL) {
  484.       _icq.check_if_on_list $1
  485.       _icq.print_msg -url $1 $iif($gettok($2-,2,254) != $gettok($2-,1,254),$gettok($2-,1,254)) $replace($+(,$gettok($2-,2,254)),$chr(32),$+($chr(37),20))
  486.     }
  487.     return
  488.   }
  489.  
  490.   if ($signal == icq.awaymsgreq) {
  491.     .signal smarticq.awaymsgreq $1
  492.     _icq.check_if_on_list $1
  493.     return
  494.   }
  495.  
  496.   if ($signal == icq.login) {
  497.     if ($1 == E_FAILED) {
  498.       if ($2 == CONNECTING) { _icq.disconnected | return }
  499.       if ($2 == CONNECT) { _icq.disconnected | return }
  500.       if ($2 == RESOLVE_HOSTNAME) { _icq.sockerror Could not resolve hostname! | return }
  501.       if ($2 == RESOLVE_IP) { _icq.sockerror COuld not resolve IP! }
  502.       if ($2 == INVALID_PASSWORD) { 
  503.         _icq.systemtext
  504.         hadd smarticq status offline 
  505.         _icq.drw_obj -show icqbutton up
  506.         _icq.adduserinfo $_icq.a passwd
  507.         _icq.login $hget(smarticq,status)
  508.         return
  509.       }
  510.       if ($2 == RECON_FAST) { _icq.sockerror Reconnecting too fast! }
  511.       if ($2 == MULTIPLE_LOGINS) { _icq.sockerror Multiple logins - Disconnected! }
  512.       if ($2 == INVALID_UIN) { _icq.sockerror Invalid UIN! }
  513.       if ($2 == TOO_MANY_IP) { _icq.sockerror Too many connections from same IP! }
  514.       if ($2 == RATE_EXCEEDED) { _icq.sockerror Rate limit exceeded! }
  515.       if ($2 == UNKNOWN_ERROR) { return }
  516.       if ($2 == INVALID_SOCKET) { _icq.sockerror Could not create socket! }
  517.       if ($2 == SYNCSELECT) { _icq.sockerror Syncselect error! }
  518.       if ($2 == INITWINSOCK) { _icq.sockerror Could not init winsock! }
  519.     }
  520.  
  521.     if ($1 == S_OK) {
  522.       if ($2 == connecting) { _icq.systemtext connecting... }
  523.       if ($2 == connected) { .timer_icq.connect_check off | _icq.systemtext connected... }
  524.       if ($2 == handshake) {  }
  525.       if ($2 == contacts) {  }
  526.  
  527.       if ($2 == ready) { 
  528.         .disable #_icq.roster        
  529.         if ($_icq.g($_icq.a,NEWADDED,0)) {
  530.           _icq.dll reqroster
  531.           .enable #_icq.roster
  532.         }
  533.         if ($_icq.g($_icq.a,_NEW_,0)) {
  534.           _icq.update_mydetails
  535.           _icq.adduserinfo $_icq.a _NEW_
  536.         }
  537.         _icq.nedstat
  538.         _icq.dllcheck
  539.         _icq.qr
  540.         hadd smarticq signon_time $ctime
  541.         if ($dll($+(",$_icq.dir,dat\systray.dll"))) { _icq.systray.settip }
  542.         var %file = $+(",$_icq.dir,\,$_icq.a,\settings.ini")
  543.         var %auth = $iif($readini(%file,settings,security_authreq) == 1,1,0)
  544.         var %aware = $iif($readini(%file,settings,security_webaware) == 1,1,0)
  545.         _icq.dll setsecurity %auth %aware 1
  546.         .signal smarticq.connect
  547.       }
  548.     }
  549.   }
  550.  
  551.   if ($signal == icq.reqinfo) {
  552.     var %uin = $gettok($hget(smarticq,$+(reqid::id_,$1)),1,32)
  553.     var %type = $gettok($hget(smarticq,$+(reqid::id_,$1)),2,32)
  554.     var %dname = $+(_icq.uin.,%uin)
  555.  
  556.     if ($2 == main-home-info) {
  557.       if ($3 == nick) { 
  558.         _icq.adduserinfo %uin nick $4- 
  559.         if ($_icq.g(%uin,SHOW) == $null) || ($_icq.g(%uin,SHOW) == %uin) {
  560.           _icq.adduserinfo %uin show $4-
  561.           _icq.upd_uin %uin -n $4-
  562.         }
  563.       }
  564.       if ($3 == first) { _icq.adduserinfo %uin fname $4- }
  565.       if ($3 == last) { _icq.adduserinfo %uin lname $4- }
  566.       if ($3 == email) { _icq.adduserinfo %uin e-mail $4- }
  567.       if ($3 == city) { _icq.adduserinfo %uin city $4- }
  568.       if ($3 == state) { _icq.adduserinfo %uin state $4- }
  569.       if ($3 == phone) { _icq.adduserinfo %uin phone $4- }
  570.       if ($3 == fax) { _icq.adduserinfo %uin fax $4- }
  571.       if ($3 == street) { _icq.adduserinfo %uin street $4- }
  572.       if ($3 == cellular) { _icq.adduserinfo %uin cellular $4- }
  573.       if ($3 == zip) { _icq.adduserinfo %uin zip $4- }
  574.       if ($3 == misc) { 
  575.         _icq.adduserinfo %uin country $4
  576.         _icq.adduserinfo %uin gmt $5 
  577.       }
  578.     }
  579.     if ($2 == homepage-more-info) {
  580.       if ($3 == misc) { 
  581.         _icq.adduserinfo %uin age $4
  582.         _icq.adduserinfo %uin gender $5
  583.       }
  584.       if ($3 == birth) { 
  585.         _icq.adduserinfo %uin year $4
  586.         _icq.adduserinfo %uin month $5
  587.         _icq.adduserinfo %uin day $6
  588.  
  589.       }
  590.       if ($3 == lang) { 
  591.         _icq.adduserinfo %uin lang1 $4
  592.         _icq.adduserinfo %uin lang2 $5
  593.         _icq.adduserinfo %uin lang3 $6
  594.       }
  595.       if ($3 == url) { _icq.adduserinfo %uin homepage $4- }
  596.     }
  597.     if ($2 == work-info) {
  598.       if ($3 == city) { _icq.adduserinfo %uin work-city $4- }
  599.       if ($3 == state) { _icq.adduserinfo %uin work-state $4- }
  600.       if ($3 == street) { _icq.adduserinfo %uin work-street $4- }
  601.       if ($3 == zip) { _icq.adduserinfo %uin work-zip $4- }
  602.       if ($3 == country) { _icq.adduserinfo %uin work-country $4- }
  603.       if ($3 == company) { _icq.adduserinfo %uin work-name $4- }    
  604.       if ($3 == department) { _icq.adduserinfo %uin work-dep $4- }
  605.       if ($3 == position) { _icq.adduserinfo %uin work-pos $4- }
  606.       if ($3 == url) { _icq.adduserinfo %uin work-web $4- }
  607.       if ($3 == occupation) { _icq.adduserinfo %uin work-occ $4- }
  608.     }
  609.     if ($2 == about) {
  610.       if ($3 == about) { _icq.adduserinfo %uin about $replace($4-,$crlf,$chr(254)) }
  611.       if ($dialog(%dname)) { _icq.dlg_userdetails.update %dname | did -e %dname 66 }
  612.     }
  613.     return
  614.   }
  615.  
  616.   if ($signal == icq.roster) {
  617.  
  618.     if ($group(#_icq.roster) == on) {
  619.       if ($1 == group) { 
  620.         var %group = $hget(smarticq,roster-group) + 1
  621.         if (%group < 10) {
  622.           hadd smarticq roster-group %group 
  623.           hadd smarticq $+(roster-,$2) %group $3- 
  624.           writeini $+(",$_icq.dir,$_icq.a,\settings.ini") groups $+(n,%group) $3-
  625.         }
  626.         else {
  627.           hadd smarticq $+(roster-,$2) $calc(%group -1) $3-
  628.         }
  629.       }
  630.       if ($1 == contact) {
  631.         _icq.adduinto_cl $3 1 0 0 $gettok($hget(smarticq,$+(roster-,$2)),1,32) 0 $4-
  632.       }
  633.     }
  634.  
  635.     if ($1 == visible) || ($1 == invisible) || ($1 == ignore) { 
  636.       writeini $+(",$_icq.dir,$_icq.a,\uin.ini") $1 $2 1
  637.     }
  638.  
  639.   }
  640.  
  641.   if ($signal == icq.control) {
  642.     if ($1 == sms_sent) {
  643.       var %sms = $replace($2-,<deliverable>,$chr(20),</deliverable>,$chr(20),<network>,$chr(21),</network>,$chr(21))
  644.       if ($dialog(_icq.sendsms)) {
  645.         if ($gettok(%sms,2,20) == yes) { did -ra _icq.sendsms 10 Sent to $gettok(%sms,2,21) }
  646.         else { 
  647.           if ( [ INVALID NUMBER ] isin %sms) { did -ra _icq.sendsms 10 Invalid number! | return }
  648.           if ( [ RATE LIMIT ] isin %sms) { did -ra _icq.sendsms 10 Rate limit exceeded! | return }
  649.           else { did -ra _icq.sendsms 10 Could not send! }
  650.         }
  651.       }
  652.       return
  653.     }
  654.     if ($1 == sms_ack) {
  655.       ;<sms_delivery_receipt><destination>886917742888976</destination><delivered>Yes</delivered><delivery_time>Tue, 19 Nov 2002 12:55:23 EST</delivery_time></sms_delivery_receipt>
  656.       var %ack = $replace($1-,<destination>,$chr(19),</destination>,$chr(19),<delivered>,$chr(20),</delivered>,$chr(20),<delivery_time>,$chr(21),</delivery_time>,$chr(21))
  657.       var %num = $gettok(%ack,2,19)
  658.       var %del = $gettok(%ack,2,20)
  659.       var %time = $gettok(%ack,2,21)
  660.       if (%del == Yes) { var %d = $input(Your SMS message to $(%num) has been delivered!,io,SmartICQ - SMS) }
  661.       else { var %d = $input(Your SMS message to $(%num) has NOT been delivered!,io,SmartICQ - SMS) }
  662.       return
  663.     }
  664.     if ($1 == sms) && ($2 == error) && ($dialog(_icq.sendsms)) { did -ra _icq.sendsms 10 Could not send! }
  665.  
  666.  
  667.     if ($1 == request_offline) && ($2 == start) { _icq.systemtext hold on... }
  668.     if ($1 == request_offline) && ($2 == end) { _icq.systemtext }
  669.  
  670.     if ($group(#_icq.roster) == on) {
  671.       if ($1 == request_roster) && ($2 == start) { hadd smarticq roster-group 0 | _icq.systemtext dl contacts... }
  672.       if ($1 == request_roster) && ($2 == end) { 
  673.         .disable #_icq.roster 
  674.         _icq.adduserinfo $_icq.a NEWADDED
  675.         _icq.systemtext updating...
  676.         _icq.drw_cl $hget(smarticq,scroll) 
  677.         _icq.systemtext
  678.       }
  679.     }
  680.   }
  681.  
  682.   if ($gettok($1-,1,32) == E_FAILED) { echo -s : $+ $signal $+ : $1- }
  683. }
  684.  
  685. alias _icq.systemtext {
  686.   if ($1 == $null) { 
  687.     if ($hget(smarticq,systemnew)) { writeini $+(",$_icq.dir,dat\smarticq.ini") misc systemnew 1 }
  688.     else { writeini $+(",$_icq.dir,dat\smarticq.ini") misc systemnew 0 }
  689.     text system notices $iif($hget(smarticq,systemnew), __LANG=sysn.2 )
  690.   }
  691.   else { text $1- }
  692. }
  693. alias -l text {
  694.   var %xs = $calc(17 * $hget(smarticq,XS_rows))
  695.   _icq.drw_obj -hide statusbar
  696.   drawtext $hget(smarticq,F.b-SN) @SmartICQ $hget(smarticq,C-SYSTEMNOTICE_TEXT) $hget(smarticq,F-SN) $hget(smarticq,F.size-SN) 8 $calc(%xs + 238) 147 14 $1-
  697.   drawdot @SmartICQ
  698. }
  699.  
  700. #_icq.roster off
  701. #_icq.roster end
  702.  
  703. ; _________________________________________________________________________________________________________
  704. ;
  705. ; nedstat
  706. ;
  707.  
  708. #_icq.nedstat on
  709. #_icq.nedstat end
  710. alias _icq.nedstat { 
  711.   if ($1 == -on) { .enable #_icq.nedstat | return } 
  712.   if ($group(#_icq.nedstat) == on) { 
  713.     if ($1 == -proxy) { _icq.proxy m1.nedstatbasic.net 80 _icq.nedstat nedstat }
  714.     else { sockclose _icq.nedstat | sockopen _icq.nedstat m1.nedstatbasic.net 80 }
  715.     .disable #_icq.nedstat 
  716.   } 
  717. }
  718. ;on *:sockopen:_icq.nedstat:{ if (!$sockerr) { _icq.httpwrite $sockname $+(/n?id=ABVYkw7CcBcduvgQpG4y36afVgsA&r=http://smarticq.,$replace($_icq.skin(name),$chr(32),_),/v1.2_win,$os,_icqdll.,$gettok($dll($_icq.dllf,ICQ_Version,null),2,32)) http://hem.passagen.se/cole/index.html m1.nedstatbasic.net } | _icq.checkver }
  719. ;on *:sockread:_icq.nedstat:{ sockclose $sockname }
  720. _icq.nedstat off
  721. #_icq.nedstat end
  722.  
  723. ;alias _icq.checkver { sockclose _icq.checkver | sockopen _icq.checkver www.digitalperk.com 80 }
  724. ;on *:sockopen:_icq.checkver:{ if (!$sockerr) { _icq.httpwrite $sockname /~tronicer/smarticq.ver http://smarticq www.digitalperk.com } }
  725. ;on *:sockread:_icq.checkver:{ if (!$sockerr) { var %r | sockread $sockbr %r | if (%r == $null) { sockmark $sockname 1 | return } | if ($sock($sockname).mark) && (%r > $gettok($_icq.version,1,32)) { sockmark $sockname %r | dialog -m _icq.dlg_newver _icq.dlg_newver } } }
  726.  
  727. alias  _icq.httpwrite {
  728.   ; - /_icq.httpwrite <sockname> <url> <referer> <host>
  729.   sockwrite -n $1 GET $2 HTTP/1.0
  730.   sockwrite -n $1 Accept: */*
  731.   sockwrite -n $1 Referer: $3
  732.   sockwrite -n $1 Accept-Language: sv
  733.   sockwrite -n $1 Content-Type: application/x-www-form-urlencoded
  734.   sockwrite -n $1 Accept-Encoding: gzip, deflate
  735.   sockwrite -n $1 User-Agent: Mozilla/4.6 [en] (Win $+ $os $+ ; I)
  736.   sockwrite -n $1 Host: $4
  737.   sockwrite -n $1 Connection: Keep-Alive 
  738.   sockwrite -n $1 $crlf
  739. }
  740.  
  741. ; _________________________________________________________________________________________________________
  742. ;
  743. ; icq.dll downloader
  744. ;
  745.  
  746. #_icq.dllcheck on
  747. #_icq.dllcheck end
  748.  
  749. alias _icq.dllcheck {
  750.   if ($group(#_icq.dllcheck) == on) {
  751.     sockclose _icq.dllcheck
  752.     sockopen _icq.dllcheck www.digitalperk.com 80
  753.   }
  754. }
  755.  
  756. on *:sockopen:_icq.dllcheck:{
  757.   if ($sockerr) { return }
  758.   write $+(",$_icq.dir,dat\debug.txt,") ( $+ $asctime($ctime,HH:nn:ss) $+ ) ? new icq.dll?
  759.   if ($window(@icqdebug)) { aline -pi2 @ICQDEBUG ( $+ $asctime($ctime,HH:nn:ss) $+ ) ? new icq.dll? }
  760.   _icq.httpwrite $sockname /~tronicer/icqdll.txt http://www.digitalperk.com/~tronicer www.digitalperk.com
  761.   sockmark $sockname 0
  762. }
  763.  
  764. on *:sockread:_icq.dllcheck:{
  765.   if ($sockerr) { return }
  766.   var %r
  767.   sockread $sockbr %r
  768.  
  769.   if ($sock($sockname).mark) {
  770.     if (%r > $gettok($dll($_icq.dllf,ICQ_Version,null),2,32)) { _icq.dllget }
  771.   }
  772.  
  773.   if (%r == $null) { sockmark $sockname 1 }
  774. }
  775.  
  776. alias _icq.dllget {
  777.   sockclose _icq.dllget
  778.   sockopen _icq.dllget www.digitalperk.com 80
  779. }
  780.  
  781. on *:sockopen:_icq.dllget:{
  782.   if ($sockerr) { return }
  783.   _icq.httpwrite $sockname /~tronicer/icqdll.zip http://www.digitalperk.com/~tronicer www.digitalperk.com
  784.  
  785.   sockmark $sockname 0
  786.   .remove $+(",$_icq.dir,dat\icqdll.new.tmp")
  787.  
  788.   write $+(",$_icq.dir,dat\debug.txt,") ( $+ $asctime($ctime,HH:nn:ss) $+ ) ! getting new icq.dll!
  789.   if ($window(@icqdebug)) { aline -pi2 @ICQDEBUG ( $+ $asctime($ctime,HH:nn:ss) $+ ) ! getting new icq.dll! }
  790. }
  791.  
  792. on *:sockread:_icq.dllget:{
  793.   if ($sockerr) { return }
  794.  
  795.   if ($sock($sockname).mark) {
  796.     var %sockbr = 1
  797.     while (%sockbr) {
  798.       sockread &r
  799.       bwrite $+(",$_icq.dir,dat\icqdll.new.tmp") -1 -1 &r
  800.       %sockbr = $sockbr
  801.     }
  802.   }
  803.  
  804.   else {
  805.     var %r
  806.     sockread $sockbr %r
  807.     if (%r == $null) { sockmark $sockname 1 }
  808.   }
  809.  
  810. }
  811.  
  812. on *:sockclose:_icq.dllget:{
  813.   if ($exists($+(",$_icq.dir,dat\icqdll.new.tmp"))) {
  814.     .rename $+(",$_icq.dir,dat\icqdll.new.tmp") $+(",$_icq.dir,dat\icqdll.new")
  815.   }
  816. }
  817.