;;;;;;;;;;;;;;;;;;; ;;; Away system ;;; ;;;;;;;;;;;;;;;;;;; ;; Events on *:START:{ var %core = $shortfn($mircdir $+ core\core.mrc) if (!$script(%core)) .load -rs1 %core var %d = $awaypath(logs) if (!$isdir(%d)) .mkdir %d hmake away 20 hload away $awaypath(awaysys.ah) if ($server) && ($awayget(auto)) .timeraway $+ $cid 1 $calc($awayget(idle) * 60) autoaway } on *:CONNECT:{ if ($awayget(auto)) .timeraway $+ $cid 1 $calc($awayget(idle) * 60) autoaway } on *:UNLOAD:{ hfree away .timeraway* off .timeran* off } on *:INPUT:*:{ if ($left($1,1) != $cmdchar) { if ($awayget(auto)) && (!$away) .timeraway $+ $cid 1 $calc($awayget(idle) * 60) autoaway if ($away) && ($awayget(press)) away } } on *:TEXT:*:#:astore $1- on *:ACTION:*:#:astore $1- on *:NOTICE:*:#:astore $1- ctcp *:*:#:astore $1- on *:TEXT:*:?:astore2 $1- on *:ACTION:*:?:astore2 $1- on *:NOTICE:*:?:astore2 $1- ctcp *:*:?:{ if ($away) && ($1 == PAGE) && ($2) && ($awayget(pager)) { if ($isfile($awayget(sound))) .splay $+(",$awayget(sound),") awaypager $nick $ctime $2- } astore2 $1- } on *:dialog:awaysys:*:*:{ if ($devent == init) { seticon 29 setmdx sethelp 200 mdx SetBorderStyle $dname 6,7,20,38,39 clientedge mdx SetBorderStyle $dname 14,18,21,40,46,48,50 staticedge mdx SetFont $dname 6,7 ANSI 20 700 Arial mdx SetFont $dname 10,16,19 ANSI 13 700 Tahoma window -hl @awayh window -hl @awayh2 window -hl @awayh3 window -hl @awayh4 mdx SetControlMDX $dname 15,41,49,51 window > $dialogs did -a $dname 15 grab $window(@awayh).hwnd @awayh did -a $dname 41 grab $window(@awayh2).hwnd @awayh2 did -a $dname 49 grab $window(@awayh3).hwnd @awayh3 did -a $dname 51 grab $window(@awayh4).hwnd @awayh4 mdx SetControlMDX $dname 17 listview rowselect report single showsel > $views did -i $dname 17 1 headerdims 116 86 67 62 did -i $dname 17 1 headertext $+(Date,$tab,Network,$tab,Size,$tab,Entries) .copy -o $awaypath(awaymsg.ac) temp\awaymsg.ac loadbuf -ro $dname 5 temp\awaymsg.ac did -c $dname 5 $awayget(msg) if ($awayget(mode)) did -c $dname 13 else did -c $dname 12 did -a $dname 14 $awayget(format) did -a $dname 40 $awayget(bformat) did -a $dname 48 $awayget(nformat) did -a $dname 50 $awayget(tformat) aline @awayh $awayget(format) aline @awayh2 $awayget(bformat) aline @awayh3 $awayget(nformat) aline @awayh4 $awayget(tformat) if ($awayget(anick)) did -c $dname 8 did -a $dname 9 $awayget(nick) hadd -m awayt log $awayget(log) hadd -m awayt notify $awayget(notify) hadd -m awayt show $awayget(show) if ($awayget(press)) did -c $dname 22 if ($awayget(systray)) did -c $dname 23 if ($awayget(sounds)) did -c $dname 24 if ($awayget(prots)) did -c $dname 25 if ($awayget(all)) did -c $dname 26 if ($awayget(pager)) did -c $dname 35 if ($awayget(deop)) did -c $dname 44 if ($awayget(auto)) did -c $dname 27 if ($awayget(timer)) did -c $dname 30 did -a $dname 37 $awayget(sound) did -a $dname 28 $awayget(idle) did -a $dname 31 $awayget(delay) listfiles setoutput $remove($awaypath(logs),",$mircdir) $+ \ listfiles listfiles f > temp\awaylogs.t > $remove($awaypath(logs),") > *.log > > 1 .fopen away temp\awaylogs.t while (1) { var %t = $fread(away) if (!%t) break var %f = $nopath($gettok(%t,1,32)) var %d = $totime($gettok(%f,1,46)) var %n = $remlast($gettok(%f,3-,46),4) ( $+ CID $gettok(%f,2,46) $+ ) var %s = $bytes($gettok(%t,2,32)).suf var %e = $lines($gettok(%t,1,32)) did -a $dname 17 $lv($+(%d,$tab,%n,$tab,%s,$tab,%e)) } .fclose away } elseif ($devent == dclick) && ($did == 17) showawaylog $gettok($read(temp\awaylogs.t,n,$calc($did($dname,17).sel - 1)),1,32) elseif ($devent == edit) { if ($did == 14) away.pre @awayh elseif ($did == 40) away.pre @awayh2 elseif ($did == 48) away.pre @awayh3 elseif ($did == 50) away.pre @awayh4 } elseif ($devent == sclick) { if ($did == 6) { var %m = $anainp(Message:) write temp\awaymsg.ac %m did -ac $dname 5 %m } elseif ($did == 7) { var %n = $did($dname,5).sel if (!%n) return did -d $dname 5 %n write -dl %n temp\awaymsg.ac if ($did($dname,5,1)) { if ($did($dname,5).lines >= %n) did -c $dname 5 %n else did -c $dname 5 $calc(%n - 1) } else did -r $dname 5 } elseif ($did == 17) && ($gettok($did($dname,17,1),1,32) == rclick) awaypop elseif ($did == 20) awaypop elseif ($did == 38) did -ra $dname 37 $$afile(sounds\ $+ *.wav,Select a sound,Ok) elseif ($did == 39) && ($isfile($did($dname,37))) .splay " $+ $did($dname,37) $+ " elseif ($did == 33) { .copy -o temp\awaymsg.ac $awaypath(awaymsg.ac) awaysave msg $iif($did($dname,5).sel,$v1,0) if ($did($dname,13).state) awaysave mode 1 else awaysave mode 0 awaysave format $dlgnotnull(14,is away "" • Log: • Pager: ) awaysave bformat $dlgnotnull(40,is back [