; –––––––––––––––––––––––––––––––––––––––– ; NoNameScript v4.2 - away system - coded by greeny & mute ; Don't edit anything in here unless you REALLY know what you're doing! ; –––––––––––––––––––––––––––––––––––––––– raw 305:*:{ var %t = You are no longer marked as being away $iif($awaytime,after $thmhl($sduration($v1).nosec)) $iif($awaymsg,as $thmhl($v1)) on $thmhl($curconserv) $+ . thmecho $asecho %t if ($window($specialcidwin(Awaylog))) { thmecho $v1 %t } if ($dialog(settings)) { did -ra settings 196 Back did -b settings 198 } unset %away.oldnick. $+ $curconserv haltdef } raw 306:*:{ var %t = You have been marked as being away $iif($awaymsg,as $thmhl($v1)) on $thmhl($curconserv) $+ . thmecho $asecho %t if ($window($specialcidwin(Awaylog))) { thmecho $v1 %t } if ($dialog(settings)) { did -ra settings 196 Away: $shorten(20,$awaymsg) did -e settings 198 } inc %stat.away haltdef } alias nick.def { var %n if (%nick.def. [ $+ [ $network ] ]) { %n = $v1 } elseif (%nick.def) { %n = $v1 } if ($isid) { return %n } else { if (%n) { nick $v1 } else { thmerror -a No default nick found. } } } alias nick.away { var %n if (%nick.away. [ $+ [ $network ] ]) { %n = $v1 } elseif (%nick.away) { %n = $v1 } if ($isid) { return %n } else { if (%n) { nick $v1 } else { thmerror -a No away nick found. } } } alias aw.chksel { if ($did(154).sel) { tokenize 32 $hget(awaypreset,$replace($did(154).seltext,$chr(32),_)) did -ra $dname 187 $1 did -ra $dname 186 $2- did -e $dname 186,187,179,175,197 } else { did -r $dname 186,187 did -b $dname 186,187,179,175,197 } } alias awpreset.clear { if ($ydialog(Do you really want to remove all away presets?)) { hdel -w awaypreset * did -r $dname 154,186,187 did -b $dname 186,187,179,180,175 } } alias awpreset.remsel { while ($did(154).sel) { hdel awaypreset $replace($did(154).seltext,$chr(32),_) did -d $dname 154 $did(154).sel } hsave -ob awaypreset scripts\tables\awaypreset.tbl did -r $dname 186,187 did -b $dname 186,187,179,175 if (!$did(154).lines) { did -b $dname 180 } } alias awpreset.add { var %r = $$eddialog(Enter a name for a new away preset!),%n = $replace(%r,$chr(32),_) if ($didwm(154,%r)) { errdialog an away preset with the name $qt(%r) already exists! } else { hadd awaypreset %n $iif(%nick.away,$v1,$chkme) %r hsave -ob awaypreset scripts\tables\awaypreset.tbl did -ac $dname 154 %r did -e $dname 180 aw.chksel } } alias awpreset.edit { var %r = $$eddialog(Enter a new name for the away preset $+(",$did(154).seltext,"!),$did(154).seltext),%n = $replace(%r,$chr(32),_),%d = $replace($did(154).seltext,$chr(32),_) if ($didwm(154,%r)) { errdialog an away preset with the name $qt(%r) already exists! } else { hadd awaypreset %n $hget(awaypreset,%d) hdel awaypreset %d hsave -ob awaypreset scripts\tables\awaypreset.tbl did -oc $dname 154 $did(154).sel %r did -e $dname 186,187,179,175 } } dialog idleaway { title "Auto-away" size -1 -1 240 120 option pixels icon scripts\pics\nntray.ico text "Warning:", 1, 6 6 46 16 text "", 2, 54 6 180 54 text "", 3, 54 64 126 16 button "&Cancel away", 5, 156 92 80 24, cancel button "&Go away now", 4, 70 92 80 24, ok box "", 6, -2 78 244 8 } on *:dialog:idleaway:*:*:{ if ($devent == init) { did -a $dname 2 you have chosen to go auto-away after $calc(%auto.awaytime /60) minutes of idling. If you don't press cancel within the next 20 seconds, you will be set away. did -a $dname 3 20 seconds remaining... .timeridleaway 20 1 aw.idlinc } elseif ($devent == sclick) { if ($did == 4) { aw -i } elseif ($did == 5) { scon -at1 resetidle } } elseif ($devent == close) { .timeridleaway off } } alias checkidle { if ($dialog(idleaway)) { return } var %x = 0,%t = 0,%z = 1 while ($scon(%z)) { scon %z if ($status == connected) { inc %t if ($idle < %auto.awaytime) || ($away) { return } } inc %z } scon -r if (%away.auto.warn) { nndlg -mo idleaway } else { aw -i } } alias aw.idlinc { if ($dialog(idleaway)) { var %x = $calc($wd($did(idleaway,3),1) -1) if (!%x) { dialog -x idleaway aw -i } else { did -ra idleaway 3 %x seconds remaining... } } else { .timeridleaway off } } alias sa { .aw $1- } alias saw { .aw $1- } alias saway { .aw $1- } alias a { aw $1- } alias aw { if ($1- != $null) { var %i = $scid(0),%n,%r,%t while (%i) { scid $scon(%i) if ($status == connected) { if ($1 == -n) { var %n = $2,%t = $3- } else { var %n = $nick.away,%t = $1- } if ($hget(awaypreset,$replace(%t,$chr(32),_))) { var %n = $wd($v1,1),%t = $wd($v1,2-) } if ($1 == -i) { var %t = auto-away after $sduration(%auto.awaytime).nosec idle,%r = is now %t } elseif (%t) { %r = is now away: %t Left at: $time GMT } else { %r = is now away! } if (!%away.oldnick. [ $+ [ $curconserv ] ]) { set %away.oldnick. $+ $curconserv $me } !away %t $iif(%away.atime,$nbr(since $asctime(HH:nn/mmmm ddoo))) if ($show) { %n = $replace(%n,,$me,,$nick.def,,$nick.away) if (%n) && (%n !=== $me) { nick %n } if ($1 != -i) || (!%away.auto.nomsg) { aw.domsgs %r } } else { %n = $me } } dec %i } set %away.status $ctime $iif($1 == -i,i,-) %n %t } else { setup -c 5 3 } } on *:exit: { if (%away.status) { back } } alias sre { .back } alias sback { .back } alias re { back } alias back { scon -at1 resetidle tokenize 32 %away.status var %i = $scid(0),%t = $iif($calc($ctime - $1) isnum 0-31536000,$v1,0),%r if ($4-) { %r = is back at $time GMT from: $4- $iif(%t,$nbr(Been away for $sduration(%t).nosec)) } elseif ($1) { %r = is back! $iif(%t,$nbr(Been away for $sduration(%t).nosec)) } else { %r = is back! } while (%i) { scid $scon(%i) if ($away) { var %t = 1,%n !away if ($show) { if (%away.useold) && (%away.oldnick. [ $+ [ $curconserv ] ]) { %n = $v1 } else { %n = $nick.def } if (%n) && (%n !=== $me) { nick %n } if ($2 != i) || (!%away.auto.nomsg) { aw.domsgs %r } } else { %n = $me } } dec %i } if (!%t) { thmerror -a You are not away! } if (%awaypager.enabled) { if ($isfile(scripts\txt\awpages.txt)) { .fopen pager scripts\txt\awpages.txt while (!$feof) { if (0 * iswm $fread(pager)) { thmecho -a You have unread away pages! Type $thmhl(/pager) to look at them now. break } } .fclose pager } } unset %away.status %away.oldnick.* %aw.reminded.* } alias aw.domsgs { .timerawmsg.*.* off if (!%away.nomsg) { if (%away.pubmsg == 1) { if ($active != Status Window) && (@* !iswm $active) && ($cid == $activecid) && (!$istok(%away.ad.excl,$active,44)) { describe $active $1- } } else { if (%away.ignorechans) && (%away.ad.excl) { var %c = $chan(0),%q = $query(0),%f = 0 while (%c) { if (!$istok(%away.ad.excl,$chan(%c),44)) && ($me ison $chan(%c)) { $+(.timerawmsg.,$cid,.,$chan(%c)) 1 %f if ($chan( $+ %c $+ )) $chr(123) describe $!v1 $1- $chr(125) inc %f 2 } dec %c } if (%away.ad.queries) { while (%q) { if (!$istok(%away.ad.excl,$query(%q),44)) { $+(.timerawmsg.,$cid,.,$query(%q)) 1 %f if ($query( $+ %q $+ )) $chr(123) describe $!v1 $1- $chr(125) inc %f 2 } dec %q } } } else { if ($chan(0)) { ame $1- } if (%away.ad.queries) && ($query(0)) { qme $1- } } } } } alias aw.chkhl { if (%away.remind) && ($away) && (!%aw.reminded. [ $+ [ $cid ] $+ ] . [ $+ [ $nick ] ]) && (!%aw.remindflood) { set -u3600 $+(%,aw.reminded.,$cid,.,$nick) 1 set -u4 %aw.remindflood 1 .notice $nick I have been away for $duration($awaytime) $+ : $awaymsg (one-time response to highlight) } } menu @awaylog[*] { $style(2) $+([,$shorten(15,$active),]):return - Clear:clear $active Close:close -@ $active } alias away.chklog { if ($away) && (%away.log) && ((($prop == event) && (%away.log.events)) || (((%away.hllog) && ($isachl($1-))) || ((%away.log.trigger) && ($regex(awlog,$1-,%away.log.trigger))))) { if (!$window($specialcidwin(Awaylog))) { window -nk0 $specialcidwin(Awaylog) thmecho $specialcidwin(Awaylog) Away log window opened on $thmhl($longtime) thmecho $specialcidwin(Awaylog) You are currently marked away as $thmhl($awaymsg) echo $specialcidwin(Awaylog)  } return 1 } } ctcp *:page:?:{ if (%awaypager.enabled) { if ($away) { write -il1 scripts\txt\awpages.txt 0 $ctime $iif($ial($nick),$v1,$nick) $strip($2-) if (!%pagerflood. [ $+ [ $cid ] ]) { .notice $nick Thanks for your page! } } elseif (!%pagerflood. [ $+ [ $cid ] ]) { .notice $nick I am not away... } set -u4 %pagerflood. $+ $cid 1 } } alias pager { nndlg -m awaypager } dialog awaypager { title "Away pager [/pager]" size -1 -1 396 224 option pixels icon scripts\pics\nntray.ico list 1, 12 18 138 164, size box "Choose page", 2, 4 2 154 188 box "Page info", 3, 166 2 226 188 text "From", 5, 176 22 28 16 edit "Select a page!", 8, 214 18 170 22, read autohs text "Rcvd.", 9, 176 44 30 16 edit "n/a", 10, 214 40 170 22, read autohs text "At", 12, 176 66 18 16 edit "n/a", 13, 214 62 170 22, read autohs edit "n/a", 15, 214 84 170 98, read multi return vsbar text "Text", 16, 176 88 28 16 button "&Close", 4, 312 196 80 24, ok menu "&File", 14 item "&Close", 18, 14 menu "&Pager", 17 item "&Refresh pages", 19, 17 item break, 20, 17 item "R&emove selected pages", 21, 17 item "&Clear pages", 22, 17 } on *:dialog:awaypager:*:*:{ if ($devent == init) { mdx SetControlMDX $dname 1 TreeView nohscroll haslines hasbuttons showsel > $mdxfile(views) aw.loadpages } elseif ($devent == sclick) { if ($did == 1) { tokenize 32 $did($did,1) if (slclick select * * * * iswm $1-) { did -i $dname 1 1 cb root $4-5 var %t = $did($did,$6) did -i $dname 1 1 replaceitem $6 $puttok($puttok(%t,+s,1,32),Read,6,9) set %away.curpage $mid($gettok($gettok(%t,3,9),1,13),2) tokenize 32 $read(scripts\txt\awpages.txt,n,%away.curpage) did -ra $dname 8 $3 did -ra $dname 10 $asctime($2,dddd $+ $chr(44) dd/mm/yyyy) did -ra $dname 13 $asctime($2,HH:nn:ss) did -ra $dname 15 $4- did -c $dname 8,10,13,15 1 if (!$1) { write -l $+ %away.curpage scripts\txt\awpages.txt $puttok($1-,1,1,32) } did -e $dname 21 } elseif (slclick select * * iswm $1-) { unset %away.curpage did -b $dname 21 did -ra $dname 8 Select a page! did -ra $dname 10,13,15 n/a } } } elseif ($devent == menu) { if ($did == 19) { aw.loadpages } elseif ($did == 22) { if ($ydialog(Do you really want to remove all away pages?)) { write -c scripts\txt\awpages.txt aw.loadpages } } elseif ($did == 21) { write -dl $+ %away.curpage scripts\txt\awpages.txt aw.loadpages } elseif ($did == 18) { dialog -c $dname } } elseif ($devent == close) { unset %away.curpage } } alias aw.loadpages { unset %away.curpage did -b awaypager 21 var %d,%t,%a,%l = 1,%z did -r awaypager 1 did -i awaypager 1 1 cb root did -a awaypager 1 +eb 1 1 0 0 0 Pages did -i awaypager 1 1 cb last if ($isfile(scripts\txt\awpages.txt)) { .fopen pages scripts\txt\awpages.txt while (!$feof) { tokenize 32 $fread(pages) if ($regex($1-,/^0|1 \d+ .+ .+$/)) { %t = $asctime($2,dd/mm/yyyy) if (%d != %t) { if (%a) { did -i awaypager 1 1 cb up } %z = 1 did -a awaypager 1 +e 1 1 0 0 0 %t did -i awaypager 1 1 cb last } var %d = %t,%a = 1 did -a awaypager 1 $iif($1,+,+b) 1 1 0 0 0 $+($gettok($3,1,33), Page: #,%l,$crlf,From: ,$3,$crlf,Rcvd: ,$asctime($2,dd/mm/yyyy HH:nn:ss),$crlf,Status: ,$iif($1,Read,Unread)) } inc %l } .fclose pages } if (!%z) { did -b awaypager 22 did -a awaypager 1 + 1 1 0 0 0 No pages received. } did -ra awaypager 8 Select a page! did -ra awaypager 10,13,15 n/a } ; –––––––––––––––––––––––––––––––––––––––– ; End of file ; ––––––––––––––––––––––––––––––––––––––––