Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
- ¦¦ ¦¦
- ¦¦ AWAY SCRIPT by jsz ¦¦
- ¦¦ ¦¦
- ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
- */
- alias away.intro {
- set %away.version 3.0.2
- set %away.dflt.namediv $chr(124)
- echo -a
- echo -a Away Script v $+ %away.version Successfully Loaded!
- echo -a Copyright © 2005- $+ $date(yyyy). All Rights Reserved
- echo -a Written by: 14jsz 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<nicksuffix> 07<away reason>
- echo -a Ex: /away 03away 07I am currently away -- this would change your nick to '<currentname>|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 <away reason> and no <nicksuffix>, use a * in place of <nicksuffix>.
- echo -a Ex: /away 03away -- If you only supply a <nicksuffix>, your nick will be '<currentname>|away' and your default reason will be used.
- echo -a Ex: /away -- If no <nicksuffix> or <away reason> 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 == synIRC) && (%away.auto.enabled == 1) {
- if (!%away.temp.reason) {
- away.autostart
- }
- }
- if (%away.temp.reason) & (!$away) {
- !.away %away.temp.reason (since %away.temp.gonesince $+ )
- }
- }
- alias away.autostart {
- .timer(AutoAway) 0 15 away.autoawaycheck
- }
- alias away.autoawaycheck {
- if ($idle > $calc(%away.auto.time * 60*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(mmm. dd yyyy hh:nntt)
- elseif (%away.showampm == 0) set %away.temp.gonesince $time(mmm. dd yyyy hh:nn)
- }
- if (%away.timesetting == 24) set %away.temp.gonesince $time(mmm. dd yyyy 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 $+ %away.dflt.namediv $+ %away.temp.nick
- nick %away.temp.oldnick $+ %away.dflt.namediv $+ %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 X number of hours, 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 "hours 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 jsz", 68, 10 43 144 8, tab 65
- text "Email: synth.seven@gmail.com", 70, 22 52 87 8, tab 65
- text "AIM: this is jsz", 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 $+ %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 (hours)
- }
- }
- }
- 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 -
- }
Add Comment
Please, Sign In to add comment