All pastes #411829 Raw Edit

Miscellany

public text v1 · immutable
#411829 ·published 2007-03-27 09:25 UTC
rendered paste body
##############################################################################################################
############################################## Away Dialog ###################################################
##############################################################################################################



dialog Away {
  option dbu
  size -1 -1 130 130
  title "Away Dialog"
  tab "Set Control", 1, 5 2 120 100
  tab "All Settings", 2
  tab "The Log", 3
  button "Close", 4, 87 106 35 15, ok
  edit "", 5, 5 105 75 23, multi
  text "Away Dialog v1.1", 6, 84 121 42 10
  button "Come Back from Away", 18, 30 42 65 35
  button "Away", 7, 18 20 35 14, tab 1
  button "Add", 8, 18 40 35 14, tab 1
  button "View", 9, 18 60 35 14, tab 1
  button "Delete", 10, 18 80 35 14, tab 1
  list 11, 58 20 50 74, tab 1, multi
  list 12, 58 85 50 10, tab 1
  box "Nick", 13, 10 18 52 42, tab 2
  check "Change Nick", 14, 14 25 38 10, tab 2
  text "Char:", 15, 15 38 13 10, tab 2
  edit "", 16, 33 36 7 10, tab 2
  button "Change", 17, 28 46 25 12, tab 2
  box "Messaging", 19, 10 62 52 36, tab 2
  text "", 20, 15 70 50 10, tab 2
  button "Switch to: Text", 21, 12 80 48 15, tab 2
  button "Switch to: Action", 22, 12 80 48 15, tab 2
  box "Message Color", 23, 68 18 52 42, tab 2
  check "Color Strip", 24, 72 25 38 10, tab 2
  edit "1", 25, 78 35 11 10, tab 2
  edit "2", 26, 97 35 11 10, tab 2
  button "Update", 27, 76 46 35 12, tab 2
  box "Logging", 28, 68 62 52 36, tab 2
  text "", 29, 73 70 50 10, tab 2
  button "Log Off", 30, 70 80 48 15, tab 2
  button "Log On", 31, 70 80 48 15, tab 2
  text "", 32, 22 50 100 10, tab 3
  edit "", 33, 10 30 110 67, tab 3, multi, vsbar
  button "Delete All", 34, 10 19 55 11, tab 3
  button "Refresh List", 35, 65 19 55 11, tab 3
}
on *:dialog:Away:mouse:*:{
  if ($did !isnum 4-35) var %x = Hover your mouse over an item to retrieve the description of it.
  elseif ($did == 4) var %x = Exit out of this dialog.
  elseif ($did == 5) var %x = Hover your mouse over an item to retrieve the description of it.
  elseif ($did == 6) var %x = The current version of the dialog.
  elseif ($did == 7) var %x = Go away with one of the sets.
  elseif ($did == 8) var %x = Add a set.
  elseif ($did == 9) var %x = View a set's statistics and information.
  elseif ($did == 10) var %x = Delete a set.
  elseif ($did == 11) var %x = The list of sets.
  elseif ($did == 12) var %x = Total number of sets.
  elseif ($did == 13) var %x = Changing your nick when you go away and the seperation character.
  elseif ($did == 19) var %x = How you want the script to global your message.
  elseif ($did == 23) var %x = Choose the colors you want to be in the global messages and "I am away" response.
  elseif ($did == 28) var %x = Turn your log on and off. This logs the PMs you get when you're away.
  elseif ($did == 32) var %x = Your logging is disabled - you can edit this in the "All Settings" tab.
  elseif ($did == 33) var %x = Your currently logged messages.
  elseif ($did == 34) var %x = Delete all of the logged messages in the database.
  elseif ($did == 35) var %x = Refresh the list.
  if (%x) adid ra 5 %x
  unset %x
}
alias ad {
  if ($dialog(away)) { halt } | dialog -m Away Away
}
menu * {
  Open Away Dialog {
    if ($dialog(away)) dialog -x Away | dialog -m Away Away
} }
on *:open:?:{
  if ($away == $true) {
    if ($readini(away.ini,Settings,CS) == ON) {
    .msg $nick I am currently away so I will most likely not respond! }
    elseif ($readini(away.ini,Settings,CS) == $null) {
      .msg $nick $replace(C1I amC2 currently away C1so I will most likelyC2 not respondC1!,C1,$chr(3) $&
      $+ $readini(away.ini,Color,1),C2,$chr(3) $+ $readini(away.ini,Color,2)) }
    close -m $nick | if ($readini(away.ini,Settings,Log) == ON) {    
awri Log $calc($ini(away.ini,Log,0) + 1) $time(m/d hh:nn:ss TT) $+ * $+ $nick $+ * $+ $1- } } }
on *:text:$($+(*,$me,*),2):#:{ if ($away == $true) {
    notice $nick I am currently away - Reason: $readini(away.ini,CA,Set) - $readini(away.ini,Sets,$readini(away.ini,CA,Set)) $&
  - Time Gone (So Far): $duration($calc($ctime - $readini(away.ini,CA,Time))) - } }
alias adid { did - $+ $1 Away $2- }
alias awri { writeini away.ini $1- }
alias adwri { remini away.ini $1- }
alias aech { echo -a $1- }
on *:dialog:Away:init:0:{
  if ($ini(away.ini,0) == $null || $ini(away.ini,0) == 0) awaydefaults
  adid m 5,16,33 | adid h 15,16,17,18,32
  if ($readini(away.ini,Settings,NC) == ON) { adid v 15,16,17
  adid c 14 | adid ra 16 $chr($readini(away.ini,Settings,NCC)) }
  if ($readini(away.ini,Settings,CS) == ON) { adid h 25-27
  adid c 24 }
  if ($readini(away.ini,Settings,Log) == ON) { adid h 31 |
  adid ra 29 Current: ON | awaydolog }
  if ($readini(away.ini,Settings,Log) == OFF) { adid h 30,33,34,35 | adid v 32
  adid ra 32 The Log is Off! (Switch in Settings) | adid ra 29 Current: OFF | awaydolog }
  if ($readini(away.ini,Settings,CS) == $null) {
  adid ra 25 $readini(away.ini,Color,1) | adid ra 26 $readini(away.ini,Color,2) }
  if ($ini(away.ini,Sets,0) == 0) adid ra 11 ¡ No Away Sets !
  if ($ini(away.ini,Sets,0) != 0) awaylfresh
  if (*AMSG* iswm $readini(away.ini,Settings,Way)) {
  adid ra 20 Current: Text | adid h 21 }
  if (*AME* iswm $readini(away.ini,Settings,Way)) {
  adid ra 20 Current: Action | adid h 22 }
  adid ra 5 Hover your mouse over an item to retrieve the description of it.
if ($readini(away.ini,CA,STAT) == ON) { adid h 1-6 | adid v 18 } }
alias awaydolog { if ($ini(away.ini,Log,0) == 0) { adid ra 33 ~! No Entries !~ | adid b 34 }
elseif ($ini(away.ini,Log,0) != 0) { awaylogf | adid e 34 } }
alias awaylogf { adid ra 33 ~ ID - Date & Time - Nick - Message
  adid a 33 $crlf Total Messages: $ini(away.ini,Log,0) | adid a 33 $crlf Oldest Date: $gettok($readini(away.ini,Log,1),1,42)
  set %x $ini(away.ini,Log,0) | while (%x > 0) {
    adid a 33 $crlf ~ %x $+ : $gettok($readini(away.ini,Log,%x),1,42) - $gettok($readini(away.ini,Log,%x),2,42) $&
    - $gettok($readini(away.ini,Log,%x),3,42) | dec %x 1 }
unset %x }
alias awaylfresh { adid ra 11 ~ Set Main Names
  while ($calc(%x) < $ini(away.ini,Sets,0)) { inc %x 1
  adid a 11 $ini(away.ini,Sets,%x) }
unset %x | adid ra 12 Total: $ini(away.ini,Sets,0) }
alias awaybackmsg {
  if ($readini(away.ini,Settings,CS) == ON) {
    $remove($readini(away.ini,Settings,WayB),C1,C2) - From: $readini(away.ini,CA,Set) $&
    - Time Gone: $duration($calc($ctime - $readini(away.ini,CA,Time))) }
  elseif ($readini(away.ini,Settings,CS) == $null) {
    $replace($readini(away.ini,Settings,WayB) 1-C1 From:C2 $readini(away.ini,CA,Set) $&
      1-C1 Time Gone:C2 $duration($calc($ctime - $readini(away.ini,CA,Time))) $+ ,C1, $+ $chr(3) $+ $readini(away.ini,Color,1),C2, $&
  $+ $chr(3) $+ $readini(away.ini,Color,2)) } }
alias awaygonemsg {
  if ($readini(away.ini,Settings,CS) == ON) {
    $remove($readini(away.ini,Settings,Way),C1,C2) - Reason: $readini(away.ini,CA,Set) $&
    - $readini(away.ini,Sets,$readini(away.ini,CA,Set)) - $remove($awayls,C1,C2) }
  elseif ($readini(away.ini,Settings,CS) == $null) {
    $replace($readini(away.ini,Settings,Way) 1-C1 Reason:C2 $did(11).seltext 1-C1 $&
      $readini(away.ini,Sets,$did(11).seltext) 1- $awayls $+ ,C1, $+ $chr(3) $+ $readini(away.ini,Color,1),C2, $&
  $+ $chr(3) $+ $readini(away.ini,Color,2)) } }
alias awayls { if ($readini(away.ini,Settings,Log) == ON) return C1PM Log:C2 ON
if ($readini(away.ini,Settings,Log) == OFF) return C1PM Log:C2 OFF }
alias awaydefaults {
  awri Sets EX DE | adwri Sets EX | awri Times EX LE | adwri Times EX
  awri CA NO DE | adwri CA NO | awri Settings NCC 124 | awri Settings Log ON
  awri Color 1 14 | awri Color 2 2 | awri Log DE XX | adwri Log DE
  awri Settings Way amsg C1 $+ $chr(91) $+ C2 Away C1 $+ $chr(93) | awri Settings WayB amsg C1 $+ $chr(91) $+ C2 Back C1 $+ $chr(93)
}
on *:dialog:Away:sclick:*:{ if ($did == 7) {
    if ($did(11).seltext == $null) { halt }
    awri CA STAT ON | awri CA Time $ctime | adid h 1-6 | adid v 18
    awri Times $did(11).seltext $calc($readini(away.ini,Times,$did(11).seltext) + 1) | awri CA Set $did(11).seltext | set %x 1
    while (%x <= $scon(0)) { scon %x | window -a $chan(1) | inc %x 1 | away $readini(away.ini,Sets,$did(11).seltext)
    if ($readini(away.ini,Settings,NC) == ON) nick $me $+ $chr($readini(away.ini,Settings,NCC)) $+ $did(11).seltext | awaygonemsg }
  unset %x }
  elseif ($did == 8) {
    set %add.x $?="Enter Set Name" | set %add.y $?="Enter Set Description"
    if (%add.x !isalnum || * $+ $chr(32) $+ * iswm %add.x) { aech Error - only letters, numbers, and *no* spaces can be in the Set Name!
    unset %add.* | halt }
    if (!%add.x || !%add.y) { aech Error - both popups have to be filled in! | unset %add.* | halt }
    awri Sets %add.x %add.y | awri Times %add.x 0
  awaylfresh | unset %add.* }
  elseif ($did == 9) {
    if ($did(11).seltext == $null) { halt }

  adid u 11 }
  elseif ($did == 10) {
    if ($did(11).seltext == $null) { halt }
    adwri Sets $did(11).seltext | adwri Times $did(11).seltext
  awaylfresh }
  elseif ($did == 11) {
  if (*~* iswm $did(11).seltext) adid u 11 }
  elseif ($did == 14) {
    if ($did(14).state == 1) { adid v 15,16,17 | awri Settings NC ON | adid ra 16 $chr($readini(away.ini,Settings,NCC)) }
  elseif ($did(14).state == 0) { adid h 15,16,17 | adwri Settings NC } }
  elseif ($did == 17) {
    set %LOL $?="Enter New Character" | if (!%LOL || $len(%LOL) > 1) { aech Error - popup must have 1 and only 1 digit in it! | unset %LOL | halt }
  awri Settings NCC $asc(%LOL) | adid ra 16 %LOL | unset %LOL }
  elseif ($did == 18) {
    awri Times $readini(away.ini,CA,Set) $calc($readini(away.ini,Times,$readini(away.ini,CA,Set)) + 1)
    set %x 1 | while (%x <= $scon(0)) { scon %x | window -a $chan(1) | inc %x | away
      if ($readini(away.ini,Settings,NC) == ON) nick $deltok($me,$numtok($me,$readini(away.ini,Settings,NCC)),$readini(away.ini,Settings,NCC))
    awaybackmsg }
    unset %x
    if ($ini(away.ini,Log,0) > 0 && $readini(away.ini,Settings,Log) == ON) { aech Make sure to check your log! | awaydolog }
  adwri CA STAT | adwri CA Time | adwri CA Set | adid v 1-6 | adid h 18 }
  elseif ($did == 21) { adid ra 20 Current: Text
    awri Settings Way amsg C1[C2 Away C1] | awri Settings WayB amsg C1[C2 Back C1]
  adid h 21 | adid v 22 }
  elseif ($did == 22) {
    adid ra 20 Current: Action
    awri Settings Way ame C1is nowC2 away | awri Settings WayB ame C1is nowC2 back
  adid h 22 | adid v 21 }
  elseif ($did == 24) {
    if ($did(24).state == 1) {
    awri Settings CS ON | adid h 25-27 }
    elseif ($did(24).state == 0) { adwri Settings CS | adid v 25-27
  adid ra 25 $readini(away.ini,Color,1) | adid ra 26 $readini(away.ini,Color,2) } }
  elseif ($did == 27) {
    if ($did(25) !isnum 1-15 || $did(26) !isnum 1-15) {
    aech Both slots must be a digit 1-15 (0 = white, unused). | halt }
    awri Color 1 $did(25) | awri Color 2 $did(26)
  }
  elseif ($did == 30) {
    awri Settings Log OFF | awaydolog | adid ra 29 Current: OFF
    aech The Log is now Off | adid h 30,33,34,35 | adid v 31,32
  adid ra 32 The Log is Off! (Switch in Settings) }
  elseif ($did == 31) {
    awri Settings Log ON | awaydolog | adid ra 29 Current: ON
  aech The Log is now On | adid v 30,33,34,35 | adid h 31,32 }
  elseif ($did == 34) {
    adwri Log | awri Log HI X | adwri Log HI | awaydolog
  aech Database has been is deleted and remade empty. }
  elseif ($did == 35) { awaydolog | aech List has been refreshed! }
}

##############################################################################################################
############################################## End of Away Dialog ############################################
##############################################################################################################