dialog away { title "AwayScript by Marius" size -1 -1 202 124 option dbu box "Away // Back", 1, 1 0 200 77 button "Away", 3, 46 62 37 12 button "Back", 4, 90 62 37 12, disable text "Away Reason:", 5, 5 10 35 8 text "Away Message:", 2, 5 20 38 8 text "Return Message:", 6, 5 30 41 8 check "Inform channels when you are away/back", 7, 5 40 115 10 radio "AMSG", 8, 20 50 30 10, disable radio "AME", 9, 50 50 30 10, disable box "Channel Ignorer", 10, 1 125 200 81 check "Do not message ignored channels", 11, 85 140 95 10 list 12, 5 133 70 70, size button "Add Channel", 13, 85 160 37 12 button "Del Channel", 14, 85 180 37 12 box "Highlight Control", 15, 1 78 55 45 check "Log highlights", 16, 5 95 50 10 check "Log PM's", 17, 5 85 50 10 button "Add", 18, 68 90 15 10 button "Del", 19, 68 105 15 10 list 20, 93 83 105 38, size box "Highlights", 21, 56 78 145 45 edit "", 22, 50 29 100 10, autohs edit "", 23, 50 9 100 10, autohs edit "", 24, 50 19 100 10, autohs link "More", 25, 150 10 15 8 link "More", 26, 150 20 15 8 link "More", 27, 150 30 15 8 } dialog away_ext { title "Away Help" size -1 -1 154 42 option dbu link "Current Time", 1, 2 3 33 8 link "Away Reason", 2, 37 3 34 8 link "Away Duration", 3, 73 3 36 8 button "Done", 4, 49 27 37 12, ok link "Away Start Time", 5, 111 3 40 8 link "Highlight Log Status", 6, 2 14 50 8 link "PM Log Status", 7, 55 14 35 8 } on *:DIALOG:away_ext:sclick:*: { if ($did == 1) { .did -a away %away.help $chr(13) $+ &ctime } if ($did == 2) { .did -a away %away.help $chr(13) $+ &reason } if ($did == 3) { .did -a away %away.help $chr(13) $+ &duration } if ($did == 5) { .did -a away %away.help $chr(13) $+ &stime } if ($did == 6) { .did -a away %away.help $chr(13) $+ &hl } if ($did == 7) { .did -a away %away.help $chr(13) $+ &pm } } on *:DIALOG:away:edit:22,23,24: { if ($did == 22) { .set %away.msg.back $did($dname,22) } if ($did == 23) { .set %away.reason $did($dname,23) } if ($did == 24) { .set %away.msg.away $did($dname,24) } } on *:DIALOG:away:init:0: { if (%away.amsg) { .did -c $dname 8 } else { .did -c $dname 9 } if (%away.inform) { .did -c $dname 7 | .did -e $dname 8,9 | .dialog -s away $dialog(away).x $dialog(away).y 410 415 } var %a = 1 while (%a <= $lines(away.highilght.txt)) { .did -a $dname 20 $read(away.highlight.txt,%a) | inc %a } var %a = 1 while (%a <= $lines(away.channelignore.txt)) { .did -a $dname 12 $read(away.channelignore.txt,%a) | inc %a } if (%away.ig) { .did -c $dname 11 } if (%away.log.pm) { .did -c $dname 17 } if (%away.log.hl) { .did -c $dname 16 } .did -a $dname 22 %away.msg.back .did -a $dname 23 %away.reason .did -a $dname 24 %away.msg.away } on *:DIALOG:away:sclick:*: { if ($did == 7) { .set %away.inform $iif($did($dname,7).state == 1,$true,$false) .dialog -s away $dialog(away).x $dialog(away).y 410 $iif($did($dname,7).state == 1,415,250) if (%away.inform) { .did -e $dname 8,9 } else { .did -b $dname 8,9 } } if ($did == 8) { .set %away.amsg $true | .set %away.ame $false } if ($did == 9) { .set %away.ame $true | .set %away.amsg $false } if ($did == 17) { .set %away.log.pm $iif($did($dname,17).state == 1,$true,$false) } if ($did == 16) { .set %away.log.hl $iif($did($dname,16).state == 1,$true,$false) } if ($did == 18) { var %nhl = $$?="Enter a highlight string/word" .write away.highlight.txt %nhl .did -a $dname 20 %nhl .did -c $dname 20 $lines(away.highlight.txt) } if ($did == 19) { if (!$did($dname,20).seltext) { halt } .write $+(-dl,$did($dname,20).sel) away.highlight.txt .did -d $dname 20 $did($dname,20).sel } if ($did == 11) { .set %away.ig $iif($did($dname,11).state == 1,$true,$false) } if ($did == 13) { var %nci = $$?="Enter channel to ignore" .write away.channelignore.txt %nci .did -a $dname 12 %nci } if ($did == 14) { if (!$did($dname,12).seltext) { halt } .write $+(-dl,$did($dname,12).sel) away.channelignore.txt .did -d $dname 20 $did($dname,20).sel } if ($did == 25) { .set %away.help 23 | .dialog -mdo away_ext away_ext } if ($did == 26) { .set %away.help 24 | .dialog -mdo away_ext away_ext } if ($did == 27) { .set %away.help 22 | .dialog -mdo away_ext away_ext } if ($did == 3) { if ($away) { halt } .did -c $dname 4 .did -b $dnaem 3 .setaway %away.reason } if ($did == 4) { if (!$away) { halt } .did -c $dname 3 .did -b $dname 4 .setaway } } alias same { var %a = 1 while (%a <= $chan(0)) { if ($read(away.channelignore.txt,s,$1)) { describe $chan(%a) $2- } inc %a } } alias samsg { var %a = 1 while (%a <= $chan(0)) { if ($read(away.channelignore.txt,s,$1)) { msg $chan(%a) $2- } inc %a } } menu * { AwaySystem .Open AwaySystem:.dialog -md away away .Logs ..Show PM Logs:.awaylog pm ..Show Highlight Logs:.awaylog hl .- . $iif($away,Back,Away) :.setaway } alias awaylog { if (!$window(@away.log)) { .window @away.log } var %sf = $iif($1 == hl,away.log.hl.txt,away.log.pm.txt),%a = 1 while (%a <= $lines(%sf)) { .aline @away.log $read(%sf,%a) inc %a } } alias setaway { if ($away) { if (%away.inform) { if (%away.amsg) { $iif(%away.ig,samsg,amsg) $away.p(%away.msg.back) } if (%away.ame) { $iif(%away.ig,same,ame) $away.p(%away.msg.back) } } .away } if (!$away) { if (!$1) { .set %away.reason $$?="Enter an away reason"> } else { .set %away.reason $1- } if (%away.inform) { if (%away.amsg) { $iif(%away.ig,samsg,amsg) $away.p(%away.msg.away) } if (%away.ame) { $iif(%away.ig,same,ame) $away.p(%away.msg.away) } } if ($exists(away.log.pm.txt) || $exists(away.log.hl.txt)) { var %lc = $input(Would you like ot remove old log files?,y,Away Log Management) } if (%lc) { if ($exists(away.log.pm.txt)) { .remove away.log.pm.txt } if ($exists(away.log.hl.txt)) { .remove away.log.hl.txt } } .set %away.start $fulldate .away $away.p(%away.reason) } } alias away { if (!$1) { .dialog -md away away } .setaway $1- } alias away.p { var %ret = $1- var %ret = $replace(%ret,&ctime,$time) var %ret = $replace(%ret,%reason,%away.reason) var %ret = $replace(%ret,&duration,$duration($awaytime)) var %ret = $replace(%ret,&stime,%away.start) var %ret = $replace(%ret,&hl,$iif(%away.log.hl,On,Off)) var %ret = $replace(%ret,&pm,$iif(%away.log.pm,On,Off)) return %ret } on ^*:TEXT:*:?: { if (!$away || !%away.log.pm) { return } .write away.log.pm.txt $nick - $fulldate - $1- .msg $nick I am currently away ( $+ %away.reason $+ ) - Your message has been logged. .close -m $nick haltdef } on *:TEXT:*:#: { if (!$away || !%away.log.hl) { halt } var %a = 1 while (%a <= $lines(away.highlight.txt)) { if ($read(away.highlight.txt,%a) isin $1-) { .write away.log.hl.txt $chan - $nick - $fulldate - $1- | break } inc %a } }