Advertisement
Guest User

Untitled

a guest
May 20th, 2017
129
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
mIRC 21.04 KB | None | 0 0
  1. ; --- upp 2
  2. ; --- file away
  3. ; --- type module
  4. ; --- info description=away system|version=1.0.0.1|rank=36|modules=general|depends=$inf(away,on)
  5.  
  6.  
  7. ; --- load dependencies
  8.  
  9. on *:load:{
  10.   setgroups
  11. }
  12.  
  13.  
  14. ; --- clean unload
  15.  
  16. on *:unload:{
  17.   closedialogs awaymsg
  18.   .timerauto.away off
  19.   .timeraway.msg off
  20. }
  21.  
  22.  
  23. ; --- groups
  24.  
  25. on *:signal:setgroups:{
  26.   setgroups
  27. }
  28. alias -l setgroups {
  29.   setgroup away_auto_away $inf(away,auto.away)
  30.   setgroup away_auto_reply $inf(away,auto.reply)
  31.   setgroup away_auto_notice $inf(away,auto.notice)
  32.   setgroup away_pager $inf(pager,on)
  33. }
  34.  
  35.  
  36. ; --- register toggles
  37.  
  38. on *:signal:set.away.auto.away:{ setgroup away_auto_away $1 }
  39. on *:signal:set.away.auto.reply:{ setgroup away_auto_reply $1 }
  40. on *:signal:set.away.auto.notice:{ setgroup away_auto_notice $1 }
  41. on *:signal:set.pager.on:{ setgroup away_pager $1 }
  42.  
  43.  
  44. ; --- feedback signals
  45.  
  46. on *:signal:makechn:{ $$1- away -1 away msg away ad }
  47.  
  48.  
  49. ; --- table close
  50.  
  51. on *:signal:close.general:{
  52.   awaystart
  53. }
  54.  
  55.  
  56. ; --- away events
  57.  
  58. ; --- on connect
  59.  
  60. on *:connect:{
  61.   awayconnect
  62.   awaystart
  63. }
  64. alias -l awaystart {
  65.   if (($server) && ($inf(away,auto.away)) && (!$away)) {
  66.     .timerauto.away -i 1 $calc($inf(away,auto.away.delay) *60) auto-away
  67.   }
  68.   elseif ($timer(auto.away)) { .timerauto.away off }
  69. }
  70. alias -l awayconnect {
  71.   if (($r.temp(away.ctime)) && ($r.temp(away.reason))) { !away $v1 }
  72. }
  73.  
  74.  
  75. #away_auto_away off
  76.  
  77. on *:input:*:{
  78.   if (!$away) {
  79.     .timerauto.away -i 1 $calc($inf(away,auto.away.delay) *60) auto-away
  80.   }
  81. }
  82.  
  83. #away_auto_away end
  84. #away_auto_reply on
  85.  
  86. on &*:open:?:{
  87.   if ($target == $null) { halt }
  88.   if ($away) {
  89.     t.temp 2 reason.away $r.temp(away.reason)
  90.     if ($inf(away,shortad)) { .timer 1 0 describe $uneval($nick) $shortad_away }
  91.     else { .timer 1 0 msg $uneval($nick) $bracket($inf(awaytext,fullad.away.away)) $away.duration(away) $iif($inf(awayad,away.reason),$!away.reason(away)) $iif($inf(awayad,away.pager),$away.pager(away)) $iif(($inf(awayad,away.time)),$inf(awaytext,fullad.away.time)) $logo }
  92.   }
  93. }
  94.  
  95. #away_auto_reply end
  96. #away_auto_notice on
  97.  
  98. on *:signal:nickalert:{
  99.   ; $!1 = chan, $!2 = wid, $3 = nick, $!4- = message
  100.   if ($away) {
  101.     if (($r.tmp($+(awaynotice.,$3))) || ($r.tmp(away.recentnoticed))) { return }
  102.     w.tmp $+(awaynotice.,$3) 1
  103.     t.temp 2 reason.away $r.temp(away.reason)
  104.     if ($inf(away,shortad)) { .timer 1 0 notice $uneval($3) $shortad_away }
  105.     else { .timer 1 0 notice $uneval($3) $bracket($inf(awaytext,fullad.away.away)) $away.duration(away) $iif($inf(awayad,away.reason),$!away.reason(away)) $iif($inf(awayad,away.pager),$away.pager(away)) $iif(($inf(awayad,away.time)),$inf(awaytext,fullad.away.time)) $logo }
  106.     t.tmp $inf(ignore,pager.secs) away.recentnoticed
  107.   }
  108. }
  109.  
  110. #away_auto_notice end
  111.  
  112.  
  113. ; --- away dcc transfer logging
  114.  
  115. on *:signal:filercvd:{
  116.   ; $1 = nick, $2 = ip, $3 = cps, $!4 = secs, $!5 = size, $6- = filename
  117.   if ($away) { $null($new(unnamed,nick $1,address $2,file $nopath($6-),cps $size($3) $+ /s).awayfile) }
  118. }
  119.  
  120.  
  121. ; --- away ad
  122.  
  123. alias -l awaytraffic {
  124.   if ($dat(awayfile).num) {
  125.     var %i = 1,%o = $v1 | aecho $rc(away,filesreceived) | while (%i <= %o) {
  126.       aecho $c(2) $+ %i $+ $chr(58) $c(1) $+ $cbrack($rc(locale,ctimeformat,$dat(awayfile,%i).ctime)) $c(1) $+ $cborder($atail($dat(awayfile,%i).nick,$dat(awayfile,%i).address)) sent $cbrack($dat(awayfile,%i).file) at $cborder($dat(awayfile,%i).cps) $csv(network,$dat(awayfile,%i).network)
  127.       inc %i
  128.     }
  129.     aecho $bracket(end of list)
  130.   }
  131. }
  132. alias -l away.leaving {
  133.   if ($chhh($1)) {
  134.     var %a = $v1
  135.     if ($calc(4 * $numtok(%a,44) + 5) > $hget(temp,reason.away).unset) { t.temp $v1 reason.away $r.temp(away.reason) }
  136.     if ($inf(away,shortad)) { adme $inf(away,ch) %a $shortad_leaving }
  137.     else { admsg $inf(away,ch) %a $bracket($inf(awaytext,fullad.leaving.leaving)) $!away.reason(leaving) $iif($inf(awayad,leaving.pager),$away.pager(leaving)) $iif(($inf(awayad,leaving.time)),$inf(awaytext,fullad.leaving.time)) $logo }
  138.   }
  139. }
  140. alias -l shortad_leaving {
  141.   var %reason = $!r.temp(reason.away)
  142.   return $eval($replace($inf(awaytext,shortad.leaving),$chr(37) $+ reason,%reason),2)
  143. }
  144.  
  145. alias -l away.back {
  146.   if ($chhh($1)) {
  147.     var %a = $v1
  148.     if ($calc(4 * $numtok(%a,44) + 5) > $hget(temp,reason.back).unset) { var %i = $v1 | t.temp %i reason.back $r.temp(away.reason) | t.temp %i realreason.back $r.temp(away.realreason) }
  149.     if ($inf(away,shortad)) { adme $inf(away,ch) %a $shortad_back }
  150.     else { admsg $inf(away,ch) %a $bracket($inf(awaytext,fullad.back.back)) $iif($inf(awayad,back.duration),$away.duration(back)) $iif($inf(away,acc),$!away.realreason,$!back.reason) $iif(($inf(awayad,back.time)),$inf(awaytext,fullad.back.time)) $logo }
  151.   }
  152. }
  153. alias -l shortad_back {
  154.   var %duration = $duration($calc($ctime - $r.temp(away.ctime)),2)
  155.   if ($inf(away,acc)) { var %reason = $!r.temp(realreason.back) }
  156.   else { var %reason = $!r.temp(reason.back) }
  157.   return $eval($replace($inf(awaytext,shortad.back),$chr(37) $+ reason,%reason),2)
  158. }
  159.  
  160. alias -l away.away {
  161.   if ($chhh($1)) {
  162.     var %a = $v1
  163.     if ($calc(4 * $numtok(%a,44) + 5) > $hget(temp,reason.away).unset) { t.temp $v1 reason.away $r.temp(away.reason) }
  164.     if ($inf(away,shortad)) { adme $inf(away,ch) %a $shortad_away }
  165.     else { admsg $inf(away,ch) %a $bracket($inf(awaytext,fullad.away.away)) $away.duration(away) $iif($inf(awayad,away.reason),$!away.reason(away)) $iif($inf(awayad,away.pager),$away.pager(away)) $iif(($inf(awayad,away.time)),$inf(awaytext,fullad.away.time)) $logo }
  166.   }
  167. }
  168. alias -l shortad_away {
  169.   var %duration = $duration($calc($ctime - $r.temp(away.ctime)),2),%reason = $!r.temp(reason.away)
  170.   return $eval($replace($inf(awaytext,shortad.away),$chr(37) $+ reason,%reason),2)
  171. }
  172.  
  173. alias away {
  174.   if (!$connected) { return }
  175.   if ($1 == -s) { var %reason = $2- }
  176.   else { var %reason = $1- }
  177.   scid -a hdel -w temp $!+($cid,.awaynotice.*)
  178.   if (%reason !== $null) {
  179.     if ($inf(away,acc)) { w.temp away.realreason $iif(($r.temp(away.realreason) !== $null),$v1 $+ $inf(awaytext,separator)) $+ %reason }
  180.     w.temp away.reason %reason
  181.     if ((!$inf(away,acc)) || ($r.temp(away.ctime) !isnum)) { w.temp away.ctime $ctime }
  182.     scid -at1 !away $!r.temp(away.reason)
  183.     if ($1 !== -s) { scid -at1 away.leaving $inf(away,ch) }
  184.     if ($inf(away,msg)) { .timeraway.msg -i 0 $calc($inf(away,msg.delay) * 60) away.msg }
  185.     if ($inf(away,auto.deop)) { scid -at1 .dopme }
  186.     if ($inf(away,nick)) { scid -a awaytonick_away }
  187.     .timerauto.away off
  188.   }
  189.   else {
  190.     scid -at1 !away
  191.     if (($1 !== -s) && ($r.temp(away.ctime)) && ($r.temp(away.reason))) { scid -at1 away.back $inf(away,ch) }
  192.     awaytraffic
  193.     hdel -w temp away.* | $dat(awayfile).delall | .timeraway.* off
  194.     if ($inf(away,auto.away)) { .timerauto.away -i 1 $calc($inf(away,auto.away.delay) * 60) auto-away }
  195.     if ($inf(away,nick)) { scid -a awaytonick_back }
  196.   }
  197. }
  198. alias -l awaytonick_away {
  199.   ; !$1-
  200.   if ($dat(network,$getnet).exists) { var %nick = $dat(network,$getnet).awaynick }
  201.   else { var %nick = $inf(away,nick.away) }
  202.   if ((%nick !== n/a) && ($me !=== %nick)) {
  203.     tnick %nick
  204.   }
  205. }
  206. alias -l awaytonick_back {
  207.   ; !$1-
  208.   if ($dat(network,$getnet).exists) { var %nick = $dat(network,$getnet).backnick }
  209.   else { var %nick = $inf(away,nick.norm) }
  210.   if ((%nick !== n/a) && ($me !=== %nick)) {
  211.     tnick %nick
  212.   }
  213. }
  214. alias auto-away {
  215.   if ((!$away) && ($inf(away,auto.away))) {
  216.     away auto away after $inf(away,auto.away.delay) minute $+ $iif(($inf(away,auto.away.delay) !== 1),s) of inactivity
  217.   }
  218. }
  219. alias -l away.time { return $duration($iif($r.temp(away.ctime),$calc($ctime - $v1),$awaytime),2) }
  220. alias away.msg { if (($away) && ($inf(away,msg))) { scid -at1 away.away $inf(away,ch) } }
  221. alias -l away.duration { return $csv($inf(awaytext,fullad. $+ $1 $+ .duration),$duration($calc($ctime - $r.temp(away.ctime)),2)) }
  222. alias away.reason { return $csv($inf(awaytext,fullad. $+ $1 $+ .reason),$r.temp(reason.away)) }
  223. alias away.realreason { return $csv($inf(awaytext,fullad.back.reason),$r.temp(realreason.back)) }
  224. alias back.reason { return $csv($inf(awaytext,fullad.back.reason),$r.temp(reason.back)) }
  225. alias -l away.pager {
  226.   if ($inf(pager,enabled)) { return $csv($inf(awaytext,fullad. $+ $1 $+ .pager),on $c(1) $+ $cborder(/ctcp $!me page <message>)) }
  227.   return $csv($inf(awaytext,fullad. $+ $1 $+ .pager),off)
  228. }
  229.  
  230.  
  231. ; --- pager
  232.  
  233. alias pager {
  234.   window -Dkal $+ $pager_maxlength @pager
  235.   titlebar @pager - double click on a nick to read the message
  236.   if (($1 !== $null) && ($dat(pager,$1).exists)) {
  237.     .fillpager
  238.     .viewpage $1
  239.   }
  240.   else {
  241.     fillpager
  242.   }
  243. }
  244. alias -l pager_maxlength {
  245.   var %max = 20,%o = $dat(pager).num | while (%o) {
  246.     if ($len($pager_format(%o)) > %max) { %max = $v1 }
  247.     dec %o
  248.   }
  249.   return %max
  250. }
  251. alias -l pager_format {
  252.   ; $1 = page
  253.   return $+($dat(pager,$1).nick,@,$dat(pager,$1).address)
  254. }
  255. alias -l pager_newcolor { return 7 }
  256. alias -l pager_normalcolor { return $color(normal) }
  257. alias -l fillpager {
  258.   clear -l @pager
  259.   var %unread = 0,%i = 1,%o = $dat(pager).num | while (%i <= %o) {
  260.     if ($dat(pager,%i).new) { inc %unread | aline -l $pager_newcolor @pager $pager_format(%i) }
  261.     else { aline -l $pager_normalcolor @pager $pager_format(%i) }
  262.     inc %i
  263.   }
  264.   if ($show) {
  265.     clear @pager
  266.     aline -p @pager $c(1) $+ you have $ecborder(%o) page $+ $iif((%o !== 1),s) $+ $chr(44) $ecborder(%unread) of which $iif((%unread !== 1),are,is) unread
  267.     d.temp activepage
  268.   }
  269. }
  270. alias -l viewpage {
  271.   ; $1 = page nr
  272.   clear @pager
  273.   w.temp activepage $1
  274.   if ($show) { $dat(pager,$1,0).newset | cline -l $pager_normalcolor @pager $1 }
  275.   sline -l @pager $1
  276.   aline $iif((!$show),-ph,-p) @pager $c(1) $+ $csv(Time,$rc(locale,ctimeformatfriendly,$dat(pager,$1).ctime)) $csv(Network,$dat(pager,$1).network)
  277.   aline $iif((!$show),-ph,-p) @pager $c(1) $+ $boldalize(Message:) $+ $c(2) $dat(pager,$1).message
  278. }
  279. menu @pager {
  280.   dclick { if ($sline(@pager,1).ln) { viewpage $v1 } }
  281.   $iif(($sline(@pager,1).ln),read page) { viewpage $sline(@pager,1).ln }
  282.   $iif(($sline(@pager,1).ln),del page) { $dat(pager,$sline(@pager,1).ln).del | fillpager }
  283.   $iif(($sline(@pager,1).ln),mark as $iif(($dat(pager,$sline(@pager,1).ln).new),read,unread)) { $dat(pager,$sline(@pager,1).ln,$nod($dat(pager,$sline(@pager,1).ln).new)).newset | fillpager }
  284.   -
  285.   refresh { fillpager }
  286.   wipe pages { if ($$?!="remove all pages?") { $dat(pager).delall | fillpager } }
  287.   close pager { window -c $active }
  288. }
  289. on *:close:@pager:{
  290.   tokenize 32 $r.temp(activepage)
  291.   d.temp activepage
  292.   if ($dat(pager,$1).exists) {
  293.     $dat(pager,$1,0).newset
  294.   }
  295. }
  296.  
  297. #away_pager on
  298.  
  299. ctcp *:page *:?:{
  300.   tokenize 32 $nick $1-
  301.   ; $1 = nick, $2- = page
  302.   if (!$inf(pager,enabled)) {
  303.     if (!$r.tmp(pager.response)) { gq.n $1 $eval($inf(pager,off_msg),2) }
  304.   }
  305.   else {
  306.     pager $new(unnamed,nick $1,address $site,message $strip($3-)).pager
  307.     if (!$r.tmp(pager.response)) { gq.n $1 $eval($inf(pager,thanks_msg),2) }
  308.     if (($inf(pager,playsound)) && ($is(sounds,pager))) { splay $quo($path(sounds,pager)) }
  309.   }
  310.   if ($inf(ignore,pager)) { t.tmp $inf(ignore,pager.secs) pager.response }
  311. }
  312.  
  313. #away_pager end
  314.  
  315.  
  316. ; --- table awaymsg
  317.  
  318. dialog awaymsg {
  319.   title "away texts"
  320.   size -1 -1 347 199
  321.   option dbu
  322.   tab "general", 1, 4 4 336 167
  323.   box "settings", 2, 12 24 154 58, tab 1
  324.   text "away reason separator", 3, 20 36 61 8, tab 1
  325.   edit "", 4, 88 36 70 10, tab 1 autohs
  326.   text "away ad style", 5, 20 52 37 8, tab 1
  327.   radio "full", 6, 80 52 26 8, tab 1
  328.   radio "short (/me ...)", 7, 80 64 54 8, tab 1
  329.   box "presets", 8, 12 84 322 78, tab 1
  330.   check "#&1", 9, 20 97 18 8, tab 1
  331.   edit "", 10, 44 96 122 10, disable tab 1 autohs
  332.   check "#&2", 11, 20 109 18 8, tab 1
  333.   edit "", 12, 44 108 122 10, disable tab 1 autohs
  334.   check "#&3", 13, 20 121 18 8, tab 1
  335.   edit "", 14, 44 120 122 10, disable tab 1 autohs
  336.   check "#&4", 15, 20 133 18 8, tab 1
  337.   edit "", 16, 44 132 122 10, disable tab 1 autohs
  338.   check "#&5", 17, 20 145 18 8, tab 1
  339.   edit "", 18, 44 144 122 10, disable tab 1 autohs
  340.   check "#&6", 19, 180 97 18 8, tab 1
  341.   edit "", 20, 204 96 122 10, disable tab 1 autohs
  342.   check "#&7", 21, 180 109 18 8, tab 1
  343.   edit "", 22, 204 108 122 10, disable tab 1 autohs
  344.   check "#&8", 23, 180 121 18 8, tab 1
  345.   edit "", 24, 204 120 122 10, disable tab 1 autohs
  346.   check "#&9", 25, 180 133 18 8, tab 1
  347.   edit "", 26, 204 132 122 10, disable tab 1 autohs
  348.   check "#&10", 27, 180 145 22 8, tab 1
  349.   edit "", 28, 204 144 122 10, disable tab 1 autohs
  350.   tab "full ad I", 29
  351.   box "leaving", 30, 12 24 322 62, tab 29
  352.   icon 31, 20 36 307 11, system\pics\pixel.bmp, 0, tab 29 noborder left
  353.   text "leaving", 32, 20 56 21 8, tab 29
  354.   edit "", 33, 48 56 102 10, tab 29 autohs
  355.   text "reason", 34, 20 68 21 8, tab 29
  356.   edit "", 35, 48 68 102 10, tab 29 autohs
  357.   check "pager", 36, 180 56 30 8, tab 29
  358.   edit "", 37, 216 56 102 10, disable tab 29 autohs
  359.   check "time", 38, 180 68 30 8, tab 29
  360.   edit "", 39, 216 68 102 10, disable tab 29 autohs
  361.   box "away", 40, 12 88 322 74, tab 29
  362.   icon 41, 20 100 307 11, system\pics\pixel.bmp, 0, tab 29 noborder left
  363.   text "away", 42, 20 120 21 8, tab 29
  364.   edit "", 43, 48 120 102 10, tab 29 autohs
  365.   text "duration", 44, 20 132 25 8, tab 29
  366.   edit "", 45, 48 132 102 10, tab 29 autohs
  367.   check "pager", 46, 180 120 30 8, tab 29
  368.   edit "", 47, 216 120 102 10, disable tab 29 autohs
  369.   check "time", 48, 180 132 30 8, tab 29
  370.   edit "", 49, 216 132 102 10, disable tab 29 autohs
  371.   check "reason", 50, 180 144 30 8, tab 29
  372.   edit "", 51, 216 144 102 10, disable tab 29 autohs
  373.   tab "full ad II", 52
  374.   box "back", 53, 12 24 322 62, tab 52
  375.   icon 54, 20 36 307 11, system\pics\pixel.bmp, 0, tab 52 noborder left
  376.   text "back", 55, 20 56 21 8, tab 52
  377.   edit "", 56, 48 56 102 10, tab 52 autohs
  378.   text "reason", 57, 20 68 25 8, tab 52
  379.   edit "", 58, 48 68 102 10, tab 52 autohs
  380.   check "duration", 59, 180 56 34 8, tab 52
  381.   edit "", 60, 216 56 102 10, disable tab 52 autohs
  382.   check "time", 61, 180 68 30 8, tab 52
  383.   edit "", 62, 216 68 102 10, disable tab 52 autohs
  384.   tab "short ad", 63
  385.   box "leaving", 64, 12 24 322 44, tab 63
  386.   edit "", 65, 20 36 307 10, tab 63 autohs
  387.   icon 66, 20 51 307 11, system\pics\pixel.bmp, 0, tab 63 noborder left
  388.   box "away", 67, 12 71 322 44, tab 63
  389.   edit "", 68, 20 83 307 10, tab 63 autohs
  390.   icon 69, 20 98 307 11, system\pics\pixel.bmp, 0, tab 63 noborder left
  391.   box "back", 70, 12 118 322 44, tab 63
  392.   edit "", 71, 20 130 307 10, tab 63 autohs
  393.   icon 72, 20 145 307 11, system\pics\pixel.bmp, 0, tab 63 noborder left
  394.   button "&ok", 73, 208 180 37 12, default ok
  395.   button "&cancel", 74, 252 180 37 12, cancel
  396.   button "&apply", 75, 296 180 37 12
  397. }
  398.  
  399. alias -l mkleavingfullprev { $mkprevc($dname,31,-1,$inf(font,channel.size),$inf(font,channel),$bracket($did(33)) $csv($did(35),.) $iif($did(36).state,$csv($did(37),off)) $iif($did(38).state,$evalsafe($did(39))) $logo) }
  400. alias -l mkawayfullprev { $mkprevc($dname,41,-1,$inf(font,channel.size),$inf(font,channel),$bracket($did(43)) $csv($did(45),0 secs) $iif($did(50).state,$csv($did(51),.)) $iif($did(46).state,$csv($did(47),off)) $iif($did(48).state,$evalsafe($did(49))) $logo) }
  401. alias -l mkbackfullprev { $mkprevc($dname,54,-1,$inf(font,channel.size),$inf(font,channel),$bracket($did(56)) $iif($did(59).state,$csv($did(60),0 secs)) $csv($did(58),.) $iif($did(61).state,$evalsafe($did(62))) $logo) }
  402. alias -l mkleavingshortprev { $mkprevc($dname,66,$color(action),$inf(font,channel.size),$inf(font,channel),$myaction($me,$evalsafe($replace($did(65),$!!csv,$!csv,$chr(37),$chr(37) $!+ $chr(32))))) }
  403. alias -l mkawayshortprev { $mkprevc($dname,69,$color(action),$inf(font,channel.size),$inf(font,channel),$myaction($me,$evalsafe($replace($did(68),$!!csv,$!csv,$chr(37),$chr(37) $!+ $chr(32))))) }
  404. alias -l mkbackshortprev { $mkprevc($dname,72,$color(action),$inf(font,channel.size),$inf(font,channel),$myaction($me,$evalsafe($replace($did(71),$!!csv,$!csv,$chr(37),$chr(37) $!+ $chr(32))))) }
  405.  
  406.  
  407. on *:dialog:awaymsg:init:0:{
  408.   var %i = 1 | while (%i <= 10) {
  409.     if ($dat(awaypreset,%i).on) { drc $calc(7 + (2 * %i)) | dre $calc(8 + (2 * %i)) }
  410.     dra $calc(8 + (2 * %i)) $dat(awaypreset,%i).msg
  411.     inc %i
  412.   }
  413.   dra 4 $inf(awaytext,separator)
  414.   if ($inf(away,shortad)) { drc 7 }
  415.   else { drc 6 }
  416.   dra 33 $inf(awaytext,fullad.leaving.leaving)
  417.   dra 35 $inf(awaytext,fullad.leaving.reason)
  418.   if ($inf(awayad,leaving.pager)) { drc 36 | dre 37 }
  419.   dra 37 $inf(awaytext,fullad.leaving.pager)
  420.   if ($inf(awayad,leaving.time)) { drc 38 | dre 39 }
  421.   dra 39 $inf(awaytext,fullad.leaving.time)
  422.   mkleavingfullprev
  423.   dra 43 $inf(awaytext,fullad.away.away)
  424.   dra 45 $inf(awaytext,fullad.away.duration)
  425.   if ($inf(awayad,away.pager)) { drc 46 | dre 47 }
  426.   dra 47 $inf(awaytext,fullad.away.pager)
  427.   if ($inf(awayad,away.time)) { drc 48 | dre 49 }
  428.   dra 49 $inf(awaytext,fullad.away.time)
  429.   if ($inf(awayad,away.reason)) { drc 50 | dre 51 }
  430.   dra 51 $inf(awaytext,fullad.away.reason)
  431.   mkawayfullprev
  432.   dra 56 $inf(awaytext,fullad.back.back)
  433.   dra 58 $inf(awaytext,fullad.back.reason)
  434.   if ($inf(awayad,back.duration)) { drc 59 | dre 60 }
  435.   dra 60 $inf(awaytext,fullad.back.duration)
  436.   if ($inf(awayad,back.time)) { drc 61 | dre 62 }
  437.   dra 62 $inf(awaytext,fullad.back.time)
  438.   mkbackfullprev
  439.   dra 65 $inf(awaytext,shortad.leaving)
  440.   mkleavingshortprev
  441.   dra 68 $inf(awaytext,shortad.away)
  442.   mkawayshortprev
  443.   dra 71 $inf(awaytext,shortad.back)
  444.   mkbackshortprev
  445. }
  446. on *:dialog:awaymsg:sclick:*:{
  447.   if ($did == 9) { ded 10 }
  448.   elseif ($did == 11) { ded 12 }
  449.   elseif ($did == 13) { ded 14 }
  450.   elseif ($did == 15) { ded 16 }
  451.   elseif ($did == 17) { ded 18 }
  452.   elseif ($did == 19) { ded 20 }
  453.   elseif ($did == 21) { ded 22 }
  454.   elseif ($did == 23) { ded 24 }
  455.   elseif ($did == 25) { ded 26 }
  456.   elseif ($did == 27) { ded 28 }
  457.   elseif (($did == 36) || ($did == 38)) { ded $calc($did +1) | mkleavingfullprev }
  458.   elseif (($did == 46) || ($did == 48) || ($did == 50)) { ded $calc($did +1) | mkawayfullprev }
  459.   elseif (($did == 59) || ($did == 61)) { ded $calc($did +1) | mkbackfullprev }
  460.   elseif (($did == 73) || ($did == 75)) {
  461.     var %i = 1 | while (%i <= 10) {
  462.       $dat(awaypreset,%i,$did($calc(7 + (2 * %i))).state).onset
  463.       $dat(awaypreset,%i,$did($calc(8 + (2 * %i)))).msgset
  464.       inc %i
  465.     }
  466.     $inf(away,shortad,$did(7).state).set
  467.     $inf(awayad,leaving.pager,$did(36).state).set
  468.     $inf(awayad,leaving.time,$did(38).state).set
  469.     $inf(awayad,away.pager,$did(46).state).set
  470.     $inf(awayad,away.time,$did(48).state).set
  471.     $inf(awayad,away.reason,$did(50).state).set
  472.     $inf(awayad,back.time,$did(61).state).set
  473.     $inf(awayad,back.duration,$did(59).state).set
  474.     $inf(awaytext,separator,$did(4)).set
  475.     $inf(awaytext,fullad.leaving.leaving,$did(33)).set
  476.     $inf(awaytext,fullad.leaving.reason,$did(35)).set
  477.     $inf(awaytext,fullad.leaving.pager,$did(37)).set
  478.     $inf(awaytext,fullad.leaving.time,$did(39)).set
  479.     $inf(awaytext,fullad.away.away,$did(43)).set
  480.     $inf(awaytext,fullad.away.duration,$did(45)).set
  481.     $inf(awaytext,fullad.away.pager,$did(47)).set
  482.     $inf(awaytext,fullad.away.time,$did(49)).set
  483.     $inf(awaytext,fullad.away.reason,$did(51)).set
  484.     $inf(awaytext,fullad.back.back,$did(56)).set
  485.     $inf(awaytext,fullad.back.reason,$did(58)).set
  486.     $inf(awaytext,fullad.back.duration,$did(60)).set
  487.     $inf(awaytext,fullad.back.time,$did(62)).set
  488.     $inf(awaytext,shortad.leaving,$did(65)).set
  489.     $inf(awaytext,shortad.away,$did(68)).set
  490.     $inf(awaytext,shortad.back,$did(71)).set
  491.   }
  492. }
  493. on *:dialog:awaymsg:edit:*:{
  494.   if (($did == 33) || ($did == 35) || ($did == 37) || ($did == 39)) { mkleavingfullprev }
  495.   elseif (($did == 43) || ($did == 45) || ($did == 47) || ($did == 49) || ($did == 51)) { mkawayfullprev }
  496.   elseif (($did == 56) || ($did == 58) || ($did == 60) || ($did == 62)) { mkbackfullprev }
  497.   elseif ($did == 65) { mkleavingshortprev }
  498.   elseif ($did == 68) { mkawayshortprev }
  499.   elseif ($did == 71) { mkbackshortprev }
  500. }
  501.  
  502.  
  503. ; --- popup away
  504.  
  505. #away_popup on
  506.  
  507. menu status,menubar,channel,query {
  508.   $iif(($$server),$iif(($away),$style(1)) away control)
  509.   .$iif(($$away),set back from $bord($strip($iif(($r.temp(away.reason)),$v1,$awaymsg)))     after $bord($away.time)) { away }
  510.   .$iif(($away),set new away reason,set away)
  511.   ..$submenu($awaymenu($1))
  512.   ..-
  513.   ..other away... { normalaway }
  514.   ..silent away... { silentaway }
  515.   ..-
  516.   ..edit presets... { editawaypresets }
  517.   .$iif(($inf(pager,enabled)),$style(1)) pages...    $bord($dat(pager).num) { pager }
  518.   .-
  519.   .settings... { awaysettings }
  520. }
  521. alias -l awaymenu { if (($1 isnum) && ($dat(awaypreset,$1,$makepropstok(7,on 1),[this]).select)) { return $awaymenuline($v1) } }
  522. alias -l awaymenuline {
  523.   var %msg = $dat(awaypreset,$1).msg
  524.   if ($awaymsg == %msg) { return $style(1) $menuform($uneval(%msg)) : awaypreset $1 }
  525.   return $menuform($uneval(%msg)) : awaypreset $1
  526. }
  527. alias -l awaysettings { dopen general | did -fu general 149 }
  528. alias -l editawaypresets { dopen awaymsg }
  529. alias -l awaypreset { away $dat(awaypreset,$1).msg }
  530. alias -l normalaway { away $$?="enter away reason" }
  531. alias -l silentaway { away -s $$?="enter away reason" }
  532.  
  533. #away_popup end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement