/* ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ ¦¦ ¦¦ ¦¦ AWAY SCRIPT by synth ¦¦ ¦¦ irc.digitaltoxicty.net -j #digitaltoxicity ¦¦ ¦¦ ¦¦ ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ */ alias away.intro { set %away.version 2.2.4 echo -a  echo -a Away Script v $+ %away.version Successfully Loaded! echo -a Copyright © 2005-2006. All Rights Reserved echo -a Written by: 14synth7 Email: 14synth.seven@gmail.com echo -a Preferences: To change settings, access 'Configuration' from your new "Away Script" right click menu. echo -a For usage syntax, /away.help - easy for setting an away you will only use once, so you don't have to save it echo -a  } alias away.help { echo -a  echo -a Usage: /away 03 07 echo -a Ex: /away 03away 07I am currently away -- this would change your nick to '|away' and your away reason as 'I am currently away'. echo -a Ex: /away 03* 07I am currently away -- If you wish to have only an and no , use a * in place of . echo -a Ex: /away 03away -- If you only supply a , your nick will be '|away' and your default reason will be used. echo -a Ex: /away -- If no or is supplied, your defaults will be used for both. echo -a Preferences: To change settings, access 'Configuration' from your new "Away Script" right click menu. echo -a  } on *:LOAD: { away.intro dialog -m away.config away.config } on *:CONNECT: { if ($network == ZiRC) && (%away.auto.enabled == 1) { if (!%away.temp.reason) { away.autostart } } } alias away.autostart { .timer(AutoAway) 0 15 away.autoawaycheck } alias away.autoawaycheck { if ($idle > $calc(%away.auto.time * 60)) && (!%away.temp.reason) { away %away.auto.nick $replace(%away.auto.away,$(%t,0), $+ %away.auto.time) .timer(AutoAway) off } } alias away { if (%away.auto.enabled == 1) .timer(AutoAway) off if (!%away.temp.reason) { if (%away.timesetting == 12) { if (%away.showampm == 1) set %away.temp.gonesince $time(hh:nntt) elseif (%away.showampm == 0) set %away.temp.gonesince $time(hh:nn) } if (%away.timesetting == 24) set %away.temp.gonesince $time(HH:nn) if (!$1 && !$2-) { set %away.temp.reason %away.dflt.away set %away.temp.nick %away.dflt.nick !.away %away.dflt.away (since %away.temp.gonesince $+ ) } elseif ($1 && !$2-) { set %away.temp.reason %away.dflt.away set %away.temp.nick $1 !.away %away.dflt.away (since %away.temp.gonesince $+ ) } else { set %away.temp.reason $2- set %away.temp.nick $1 !.away $2- (since %away.temp.gonesince $+ ) } set %away.temp.time $ctime describe # is away: $+(,%away.temp.reason,) $+($chr(40),left %away.temp.gonesince,$chr(41)) if (%away.changenick == 1) { set %away.temp.oldnick $me set %away.temp.newnick %away.temp.oldnick $+ $chr(124) $+ %away.temp.nick nick %away.temp.oldnick $+ %away.temp.nick } } else { dialog -m away.errorwindow away.errorwindow did -a away.errorwindow 1 You are already away } } alias back { if (%away.temp.reason) { !.away describe # is back from: $+(,%away.temp.reason,) $+($chr(40),gone $duration($calc($ctime - %away.temp.time)),$chr(41)) if (%away.changenick == 1) nick %away.temp.oldnick unset %away.temp.* if (%away.auto.enabled == 1) { resetidle 0 away.autostart } } else { dialog -m away.errorwindow away.errorwindow did -a away.errorwindow 1 You are not away } } dialog away.editor { title "Away Reason Editor" size -1 -1 97 124 option dbu text "Away Title:", 1, 8 8 50 9 text "Away Nick Suffix:", 2, 8 32 50 9 text "Away Reason", 3, 8 56 50 9 edit "", 4, 8 16 81 10, autohs limit 16 edit "", 5, 8 40 80 10, autohs limit 16 edit "", 6, 8 64 81 32, multi button "Save", 7, 32 102 34 15, ok } dialog away.errorwindow { title "Away Script" size -1 -1 101 35 option dbu text "", 1, 6 6 88 9, center button "Close", 2, 31 18 39 13, ok } dialog away.helpdialog { title "Away Script" size -1 -1 124 53 option dbu text "", 1, 6 8 111 21 button "Close", 2, 42 34 39 13, ok } dialog -l away.config { title "Away Script Config" size -1 -1 215 151 option dbu tab "General", 33, 1 1 213 124 tab "Away Messages", 34 tab "Auto-Away", 54 tab "About", 65 check "Change nick on away?", 1, 9 55 70 10, tab 33 text "Default away reason:", 2, 108 30 82 8, tab 33 edit "", 3, 107 39 92 29, tab 33 autovs multi text "Default away nick:", 4, 108 71 82 8, tab 33 edit "", 5, 107 80 92 11, tab 33 button "Save and OK", 6, 177 135 34 12, ok box "General", 8, 5 20 89 50, tab 33 text "Permanent Nickname:", 9, 10 32 65 8, tab 33 edit "", 10, 9 42 76 11, tab 33 box "Default Away Settings", 12, 97 20 112 104, tab 33 box "Current Away Messages", 36, 2 20 89 104, tab 34 list 37, 8 31 77 78, tab 34 vsbar box "Away Details", 40, 97 20 112 104, tab 34 button "Add New", 41, 8 106 77 14, tab 34 text "", 43, 101 39 100 8, tab 34 text "", 44, 101 61 100 21, tab 34 text "Nick Change:", 45, 101 31 50 8, tab 34 text "Away Reason:", 46, 101 53 50 8, tab 34 button "Delete", 47, 133 109 29 9, tab 34 button "Edit", 48, 101 109 29 9, tab 34 button "Cancel", 49, 139 135 34 12, cancel box "Time Setting", 51, 5 76 89 48, tab 33 radio "12 hour time (ex. 1:23pm)", 52, 11 88 77 8, tab 33 radio "24 hour time (ex. 13:23)", 53, 11 110 77 8, tab 33 text "-[ Auto-Away ]-", 55, 61 20 92 8, tab 54 center text "With this enabled, if you are idle in IRC for XX number of minutes, you will automatically be set as 'away'.", 56, 6 32 199 14, tab 54 check "Enable Auto-Away?", 57, 6 50 89 8, tab 54 edit "", 58, 10 71 17 10, tab 54 text "minutes before auto-away is set", 59, 30 72 119 8, tab 54 box "Auto-Away Settings", 60, 5 61 203 63, tab 54 text "Auto-Away nick:", 61, 10 86 49 8, tab 54 edit "", 62, 62 85 50 10, tab 54 text "Auto-Away reason:", 63, 10 98 49 8, tab 54 edit "", 64, 62 97 139 22, tab 54 autovs multi text "", 66, 10 25 144 8, tab 65 text "© Copyright 2005-2006. All Rights Reserved.", 67, 10 34 144 8, tab 65 text "Written by synth7", 68, 10 43 144 8, tab 65 text "Email: synth.seven@gmail.com", 70, 22 52 87 8, tab 65 text "AIM: myceL ESP", 71, 22 61 87 8, tab 65 text "Bug? Error? Write me at synth.seven@gmail.com", 72, 4 137 128 8 text "These are your defaults if you do not set them when using the /away command.", 73, 102 96 102 24, tab 33 center check "Show am/pm?", 76, 22 98 50 8, tab 33 button "help", 77, 35 107 23 8, tab 54 } alias away.config.awaylist { var %i = 1 while (%i <= $ini(synaway.ini,AWAYS,0)) { did -a away.config 37 $ini(synaway.ini,AWAYS,%i) inc %i } } on *:DIALOG:*:*:*: { if ($dname = away.config) { if ($devent = init) { did -a $dname 66 Away Script v $+ %away.version did -a $dname 10 $iif(%away.mainnick,%away.mainnick,$me) if (%away.changenick == 1) did -c $dname 1 if (%away.dflt.away) did -a $dname 3 $ifmatch if (%away.dflt.nick) did -a $dname 5 $ifmatch if (%away.timesetting == 12) did -c $dname 52 if (%away.timesetting == 24) { did -c $dname 53 | did -b $dname 76 } if (%away.showampm == 1) did -c $dname 76 away.config.awaylist did -b $dname 47,48 if (%away.auto.enabled == 1) did -c $dname 57 if (%away.auto.enabled != 1) did -m $dname 58,62,64 if (%away.auto.time) did -a $dname 58 $ifmatch if (%away.auto.nick) did -a $dname 62 $ifmatch if (%away.auto.away) did -a $dname 64 $ifmatch } if ($devent = sclick) { if ($did = 6) { set %away.changenick $iif($did($dname,1).state == 1,1,0) if ($did($dname,3).text) set %away.dflt.away $ifmatch if ($did($dname,5).text) set %away.dflt.nick $ifmatch if ($did($dname,10).text) set %away.mainnick $ifmatch if ($did($dname,52).state == 1) set %away.timesetting 12 if ($did($dname,53).state == 1) set %away.timesetting 24 set %away.showampm $iif($did($dname,76).state == 1,1,0) if ($did($dname,57).state == 1) { set %away.auto.enabled 1 away.autostart } if ($did($dname,57).state != 1) { set %away.auto.enabled 0 .timer(AutoAway) off } if ($did($dname,58).text) set %away.auto.time $ifmatch if ($did($dname,62).text) set %away.auto.nick $ifmatch if ($did($dname,64).text) set %away.auto.away $ifmatch if ($did($dname,58).text != %away.auto.time) away.autostart } if ($did = 37) { did -e $dname 47,48 var %nick = $gettok($readini(synaway.ini,AWAYS,$did($dname,37).seltext),1,32) var %reason = $gettok($readini(synaway.ini,AWAYS,$did($dname,37).seltext),2-,32) if ($did($dname,37).seltext) { did -a $dname 43 %away.mainnick $+ $chr(124) $+ %nick did -a $dname 44 %reason } } if ($did = 41) { dialog -m away.editor away.editor } if ($did = 47) { var %awayname = $ini(synaway.ini,AWAYS,$ini(synaway.ini,AWAYS,$did($dname,37).seltext)) var %confirm = $input(Are you sure you want to delete the ' $+ %awayname $+ ' away message?,y,Delete away) if (%confirm = $true) { remini synaway.ini AWAYS %awayname did -r $dname 37,43,44 away.config.awaylist } } if ($did = 48) { dialog -m away.editor away.editor did -a away.editor 4 $did($dname,37).seltext did -b away.editor 4 did -a away.editor 5 $gettok($readini(synaway.ini,AWAYS,$did($dname,37).seltext),1,32) did -a away.editor 6 $gettok($readini(synaway.ini,AWAYS,$did($dname,37).seltext),2-,32) } if ($did = 52) did -e $dname 76 if ($did = 53) did -b $dname 76 if ($did = 57) { if ($did($dname,57).state = 1) did -n $dname 58,62,64 else { did -m $dname 58,62,64 } } if ($did = 77) { dialog -m away.helpdialog away.helpdialog did -a away.helpdialog 1 $(%t,0) = auto-away length (minutes) } } } if ($dname = away.editor) { if ($devent = sclick) { if ($did = 7) { if ($numtok($did($dname,4).text,32) = 1) && ($numtok($did($dname,5).text,32) = 1) { writeini synaway.ini AWAYS $gettok($did($dname,4).text,1,32) $gettok($did($dname,5).text,1,32) $gettok($did($dname,6).text,1-,32) did -a away.config 37 $did($dname,4).text if ($dialog(away.config)) { did -r away.config 37 away.config.awaylist } } elseif ($numtok($did($dname,4).text,32) >= 2) { dialog -x away.editor dialog -m away.editor away.editor dialog -m away.errorwindow away.errorwindow did -a away.errorwindow 1 'Away Title' may only be one word } elseif ($numtok($did($dname,5).text,32) >= 2) { dialog -x away.editor dialog -m away.editor away.editor dialog -m away.errorwindow away.errorwindow did -a away.errorwindow 1 'Away Nick Suffix' may only be one word } } } } } menu channel,status { Away Script %away.version .$iif($away == $true,$null,$style(2)) Back:/back .$submenu($awayreasons($1)) .- .Configuration:/dialog -m away.config away.config .Unload Script { var %confirm = $input(Are you sure you want to unload Away Script %away.version $+ ? All settings and away messages will be lost.,yv,Unload?) if (%confirm = $yes) { .timer 1 0 echo -a Unloading Away Script v $+ %away.version $+ ...please wait... .timer 1 1 .unload -rs " $+ $script $+ " | .unset %away.* | .timer(AutoAway) off | .remove $+(",$mircdir,synaway.ini,") .timer 1 2 echo -a Done! Away Script v $+ %away.version Unloaded. } } } alias awayreasons { var %i 1 if ($1 == begin) return - while (%i <= $ini(synaway.ini,AWAYS,0)) { if ($1 == %i) return $ini(synaway.ini,AWAYS,%i) $+ : /away $readini(synaway.ini,AWAYS,$ini(synaway.ini,AWAYS,%i)) inc %i } if ($1 == end) return - }