All pastes #779578 Raw Edit

manager

public text v1 · immutable
·published 2007-11-18 11:56 UTC
rendered paste body
; Usage:
; /manager
alias manager {
  if (!$dialog(manager)) { dialog -m manager manager }
  else { dialog -v manager }
}
alias -l sini { return $readini(shadyirc.ini,$1,$2) }
menu status,menubar,channel {
  Manager:/manager
}
dialog manager {
  title "Management :: Sockets (Total: 0)"
  size -1 -1 192 105
  option dbu
  box "Menu", 1, 2 3 51 98
  box "", 2, 56 3 133 98
  link "Sockets", 3, 6 13 44 7
  list 7, 61 18 123 67, size extsel vsbar hsbar
  text "Name , IP , Port , Type (Status)", 8, 61 8 86 8
  button "Close", 9, 152 87 33 11, disable
  button "Button", 10, 25 123 11 6, hide ok
  button "Update", 11, 116 87 33 11
  link "Hash Tables", 4, 6 22 44 7
  list 12, 59 9 127 76, size extsel vsbar hsbar
  button "Delete", 13, 153 87 33 11
  button "Update", 14, 117 87 33 11
  link "Timers", 15, 6 31 44 7
  list 16, 59 17 127 69, size extsel vsbar hsbar
  button "Stop", 17, 153 87 33 11
  button "Update", 18, 117 87 33 11
  text "Name , Repition and Interval , Command", 19, 59 8 127 8
  menu "File", 610
  item "Copy Selected", 611, 610
  item "Exit", 612, 610
}
on 1:dialog:manager:*:*: {
  if ( $devent = init ) { manager.dshow sockets }
  if ( $devent = menu ) {
    if ( $did = 612 ) { dialog -c manager }
    if ( $did = 611 ) {
      clipboard
      if ( $did(manager,7).visible ) {
        var %x = 0, %y = $did(manager,7,0).sel
        while ( %x < %y ) {
          inc %x 1
          clipboard -a $did(manager,7,$did(manager,7,%x).sel).text $+ $crlf
        }
      }
      if ( $did(manager,12).visible ) {
        var %x = 0, %y = $did(manager,12,0).sel
        while ( %x < %y ) {
          inc %x 1
          clipboard -a $did(manager,12,$did(manager,12,%x).sel).text $+ $crlf
        }
      }
      if ( $did(manager,16).visible ) {
        var %x = 0, %y = $did(manager,16,0).sel
        while ( %x < %y ) {
          inc %x 1
          clipboard -a $did(manager,16,$did(manager,16,%x).sel).text $+ $crlf
        }
      }
    }
  }
  if ( $devent = sclick ) {
    if ( $did(manager,7,0).sel > 0 ) { did -e manager 9 }
    else { did -b manager 9 }
    if ( $did(manager,12,0).sel > 0 ) { did -e manager 13 }
    else { did -b manager 13 }
    if ( $did(manager,16,0).sel > 0 ) { did -e manager 17 }
    else { did -b manager 17 }
    if ( $did = 15 ) || ( $did = 18 ) { manager.dshow timers | did -b manager 17 }
    if ( $did = 17 ) {
      var %x = 0,%y = $did(manager,16,0).sel
      while ( %x < %y ) {
        inc %x 1
        .timer [ $+ [ $gettok($did(manager,16,$did(manager,16,%x).sel).text,1,44) ] ] off
      }
      manager.dshow timers
    }
    if ( $did = 13 ) {
      var %x = 0,%y = $did(manager,12,0).sel
      while ( %x < %y ) {
        inc %x 1 | var %z = $did(manager,12,%x).sel
        if ( $chr(124) $+ -* !iswm $did(manager,12,$did(manager,12,%x).sel).text ) && ( `-* !iswm $did(manager,12,$did(manager,12,%x).sel).text ) { hfree $did(manager,12,$did(manager,12,%x).sel).text }
        else {
          while (1) {
            dec %z 1
            if ( |-* !iswm $did(manager,12,%z).text ) && ( `-* !iswm $did(manager,12,%z).text ) && ( $hget($did(manager,12,%z).text) != $null ) { hdel $did(manager,12,%z).text $gettok($remove($did(manager,12,$did(manager,12,%x).sel).text,|-,`-),1,$asc(=)) | break }
            if ( %z = 0 ) { break }
          }
        }
      }
      manager.dshow hash
    }
    if ( $did = 11 ) { manager.dshow sockets | did -b manager 9 }
    if ( $did = 14 ) { manager.dshow hash | did -b manager 13 }
    if ( $did = 3 ) { manager.dshow sockets | did -b manager 9 }
    if ( $did = 4 ) { manager.dshow hash | did -b manager 13 }
    if ( $did = 9 ) {
      var %x = 0,%y = $did(manager,7,0).sel
      while ( %x < %y ) {
        inc %x 1
        sockclose $gettok($did(manager,7,%x).seltext,1,44)
      }
      manager.dshow sockets
    }
  }
}
alias manager.dshow {
  did -h manager 11
  did -h manager 12
  did -h manager 13
  did -h manager 14
  did -h manager 7
  did -h manager 8
  did -h manager 9
  did -h manager 16
  did -h manager 17
  did -h manager 18
  did -h manager 19
  did -r manager 7
  did -r manager 16
  did -r manager 12
  if ( $1 = timerupdate ) {
    if ( !$dialog(management)) { .timertimerupdate off }
  }
  if ( $1 = timers ) {
    if ( $timer(0) > $sini(manager,timer) ) || ( $sini(manager,timer) = $null ) { writeini shadyirc.ini manager timer $timer(0) }
    dialog -t manager Management :: Timers (Total: $timer(0) $+ ) (Record: $sini(manager,timer) $+ )
    var %x = 0, %y = $timer(0)
    while ( %x < %y ) {
      inc %x 1
      did -i manager 16 $calc($did(manager,16).lines + 1) $timer(%x) $+ , $timer(%x).reps $+ times & $timer(%x).delay $+ secs, $timer(%x).com
    }
    did -v manager 16,17,18,19
    did -z manager 16
  }
  if ( $1 = sockets ) {
    if ( $sock(*,0) > $sini(manager,socket) ) || ( $sini(manager,socket) = $null ) { writeini shadyirc.ini manager socket $sock(*,0) }
    dialog -t manager Management :: Sockets (Total: $sock(*,0) $+ ) (Record: $sini(manager,socket) $+ )
    var %x = 0, %y = $sock(*,0)
    while ( %x < %y ) {
      inc %x 1
      did -i manager 7 1 $sock(*,%x) $+ , $sock(*,%x).ip $+ , $sock(*,%x).port $+ , $sock(*,%x).type ( $+ $sock(*,%x).status $+ )
    }
    did -v manager 7
    did -v manager 8
    did -v manager 9
    did -v manager 11
    did -z manager 7
  }
  if ( $1 = hash ) {
    if ( $hget(0) > $sini(manager,hash) ) || ( $sini(manager,hash) = $null ) { writeini shadyirc.ini manager hash $hget(0) }
    dialog -t manager Management :: Hash Tables (Total: $hget(0) $+ ) (Record: $sini(manager,hash) $+ )
    var %x = 0,%y = $hget(0)
    while ( %x < %y ) {
      inc %x 1
      did -i manager 12 $calc($did(manager,12).lines +1) $hget(%x)
      var %a = 0, %b = $hget($hget(%x),0).item
      while ( %a < %b ) {
        inc %a 1
        if ( %a != %b ) did -i manager 12 $calc($did(manager,12).lines +1) |- $+ $hget($hget(%x),%a).item $+ = $+ $hget($hget(%x),%a).data
        if ( %a == %b ) did -i manager 12 $calc($did(manager,12).lines +1) `- $+ $hget($hget(%x),%a).item $+ = $+ $hget($hget(%x),%a).data
      }
      did -z manager 12
    }
    did -v manager 12
    did -v manager 13
    did -v manager 14
  }