All pastes #521184 Raw Edit

Miscellany

public text v1 · immutable
#521184 ·published 2007-05-30 03:49 UTC
rendered paste body
alias DLP.version { return 1.0 }

dialog ChannelPeak_form {
  title Channel Peak v $+ $dlp.version $+ $chr(32) $+ by Dantyboi
  size -1 -1 214 174
  option dbu notheme
  tab "Settings", 1, 1 1 211 143
  tab "Data", 6
  box " Channel peak info", 200, 86 17 120 57, tab 6
  list 16, 4 32 86 107, tab 1 vsbar size sort
  list 21, 123 32 86 107, tab 1 vsbar size sort
  text "Current channels:", 26, 7 19 50 8, tab 1
  text "Active channels:", 31, 132 19 50 8, tab 1
  button "Add", 36, 93 47 28 25, tab 1
  button "Remove", 41, 93 78 28 25, tab 1
  list 205, 4 32 78 107, tab 6 vsbar size sort
  text "Select channel", 210, 7 19 50 8, tab 6
  text "Set on:", 215, 88 39 50 8, tab 6 right
  text "Current peak:", 220, 88 27 50 8, tab 6 nowrap right
  text "By nick:", 225, 88 51 50 8, tab 6 right
  box " Channel-specific settings", 230, 86 79 120 59, tab 6
  check "Respond to !peak", 235, 91 100 105 8, tab 6
  check "Allow only ops to use !peak", 240, 101 110 97 8, tab 6
  button "Reset channel data", 245, 92 121 109 12, tab 6 flat
  text "Tracking since:", 250, 88 63 50 8, tab 6 right
  text "", 255, 142 27 60 8, tab 6
  text "", 260, 142 39 60 8, tab 6
  text "", 265, 142 51 60 8, tab 6
  text "", 270, 142 63 60 8, tab 6
  link "theblackwolves.net", 46, 72 147 58 8
  button "Close", 51, 72 160 58 12, ok
  check "Announce peaks", 56, 91 88 109 8, tab 6
}


;; dialog init

on *:dialog:ChannelPeak_form:init:0: {
  var %cnter = 1
  while (%cnter <= $scon(0)) {
    scon %cnter
    var %cnter2 = 1
    while (%cnter2 <= $chan(0)) {
      did -a ChannelPeak_form 16 $+($chan(%cnter2),@,$network)
      inc %cnter2
    }
    inc %cnter
  }
  didtok ChannelPeak_form 21 44 %dlp.channels
  didtok ChannelPeak_form 205 44 %dlp.channels

}


;;commands menu
menu menubar {
  Channel Peak
  .Options: { dialog -am ChannelPeak_form ChannelPeak_form }
  .Visit home page: { url -an theblackwolves.net }
  .-
  .Unload: { if ($?!="Do you really want to unload Channel Peak? $+ $crlf $+ Note continuing will unset all channel statistics!" == $true) unload -rs $+(",$script,") }
}

; channel added
on *:dialog:ChannelPeak_form:sclick:36: {
  if (!$did(16).seltext) halt
  if ($did(16).seltext isin %dlp.channels) halt
  %dlp.channels = $addtok(%dlp.channels,$did(16).seltext,44)
  did -r ChannelPeak_form 21
  didtok ChannelPeak_form 21 44 %dlp.channels

  dlp.GetFirstData $did(16).seltext
}

; channel removed
;; tab 1
on *:dialog:ChannelPeak_form:sclick:41: {
  if (!$did(21).seltext) halt
  %dlp.channels = $remtok(%dlp.channels,$did(21).seltext,44)
  did -r ChannelPeak_form 21
  didtok ChannelPeak_form 21 44 %dlp.channels
}

; click on link
on *:dialog:ChannelPeak_form:sclick:46: { url -an http://www.hot.ee/dukelupus }

;; tab 2

;; channel selected
on *:dialog:ChannelPeak_form:sclick:205: {
  did -o ChannelPeak_form 255 1 %dlp. [ $+ [ $did(205).seltext ] $+ ] .peak
  did -o ChannelPeak_form 260 1 $asctime(%dlp. [ $+ [ $did(205).seltext ] $+ ] .date, dd mmm yy HH:mm:ss)
  did -o ChannelPeak_form 265 1 %dlp. [ $+ [ $did(205).seltext ] $+ ] .nick
  did -o ChannelPeak_form 270 1 $asctime(%dlp. [ $+ [ $did(205).seltext ] $+ ] .startdate, dd mmm yy HH:mm:ss)
  if (%dlp. [ $+ [ $did(205).seltext ] $+ ] .allow!peak) { did -c ChannelPeak_form 235 }
  else { did -u ChannelPeak_form 235 }
  if (%dlp. [ $+ [ $did(205).seltext ] $+ ] .allow!peak.ops) { did -c ChannelPeak_form 240 }
  else { did -u ChannelPeak_form 240 }

  if (%dlp. [ $+ [ $did(205).seltext ] $+ ] .announce) { did -c ChannelPeak_form 56 }
  else { did -u ChannelPeak_form 56 }

}

; allowpeak clicked
on *:dialog:ChannelPeak_form:sclick:235: {
  if (!$did(205).seltext) halt
  %dlp. [ $+ [ $did(205).seltext ] $+ ] .allow!peak = $did(235).state
}


on *:dialog:ChannelPeak_form:sclick:240: {
  if (!$did(205).seltext) halt
  %dlp. [ $+ [ $did(205).seltext ] $+ ] .allow!peak.ops = $did(240).state
}

on *:dialog:ChannelPeak_form:sclick:56: {
  if (!$did(205).seltext) halt
  %dlp. [ $+ [ $did(205).seltext ] $+ ] .announce = $did(56).state
}


on *:dialog:ChannelPeak_form:sclick:245: {
  if (!$did(205).seltext) halt
  .unset %dlp. [ $+ [ $did(205).seltext ] $+ ] .*
  did -r ChannelPeak_form 255
  did -r ChannelPeak_form 260
  did -r ChannelPeak_form 265
  did -r ChannelPeak_form 270
  did -u ChannelPeak_form 235
  did -u ChannelPeak_form 240
  did -u ChannelPeak_form 56
  dlp.GetFirstData $did(205).seltext
  did -r ChannelPeak_form 205
  didtok ChannelPeak_form 205 44 %dlp.channels
}


; clear data from second tab onshow
on *:dialog:ChannelPeak_form:sclick:6: {
  did -r ChannelPeak_form 255
  did -r ChannelPeak_form 260
  did -r ChannelPeak_form 265
  did -r ChannelPeak_form 270
  did -u ChannelPeak_form 235
  did -u ChannelPeak_form 240
  did -u ChannelPeak_form 56
  did -r ChannelPeak_form 205
  didtok ChannelPeak_form 205 44 %dlp.channels
}


alias dlp.GetChannel { return $gettok($1,1,64) }

alias dlp.GetNetworkID {
  var %net = $gettok($1,2,64)
  var %cnter = 1
  while (%cnter <= $scon(0)) {
    if ($scon(%cnter).$network == %net) { return %cnter }
    inc %cnter
  }
}

; $1 - chan@network
alias dlp.GetFirstData {
  scon $dlp.GetNetworkID($1)
  %dlp. [ $+ [ $1 ] $+ ] .peak = $nick($dlp.getchannel($1),0)
  %dlp. [ $+ [ $1 ] $+ ] .date = $ctime
  %dlp. [ $+ [ $1 ] $+ ] .nick = None
  %dlp. [ $+ [ $1 ] $+ ] .startdate = $ctime
}

; $1 - channel $2 - network
alias dlp.isdlpchannel {  return $istok(%dlp.channels, $+($1,@,$2),44) }

on *:JOIN:*: {
  if ($dlp.isdlpchannel($chan,$network)) {
    if ($nick($chan,0) > %dlp. [ $+ [ $+($chan,@,$network) ] $+ ] .peak ) {
      %dlp. [ $+ [ $+($chan,@,$network) ] $+ ] .peak = $nick($chan,0)
      var %oldpeak = %dlp. [ $+ [ $+($chan,@,$network) ] $+ ] .date
      %dlp. [ $+ [ $+($chan,@,$network) ] $+ ] .date = $ctime
      %dlp. [ $+ [ $+($chan,@,$network) ] $+ ] .nick = $nick
      var %newtime = %dlp. [ $+ [ $+($chan,@,$network) ] $+ ] .date
      var %peak = %dlp. [ $+ [ $+($chan,@,$network) ] $+ ] .peak
      echo -s 5,15 $+ $timestamp [Channel peak] New channel peak in  $+ $chan $+  ( $+ $network $+ ):  $+ %peak
      if (%dlp. [ $+ [ $+($chan,@,$network) ] $+ ] .announce) {
        msg $chan New channel peak: %peak $+ ! Last peak was $duration($calc(%newtime - %oldpeak)) ago.
      }
    }
  }
}

ON *:TEXT:!peak:*: {
  if ($dlp.isdlpchannel($chan,$network)) {
    if ((%dlp. [ $+ [ $+($chan,@,$network) ] $+ ] .allow!peak) && (!%dlp. [ $+ [ $+($chan,@,$network) ] $+ ] .allow!peak.ops)) {
      var %peak = %dlp. [ $+ [ $+($chan,@,$network) ] $+ ] .peak
      var %newtime = %dlp. [ $+ [ $+($chan,@,$network) ] $+ ] .date
      msg $chan Current channel peak is %peak $+ , set $duration($calc($ctime - %newtime)) ago.
      halt
    }
    if ((%dlp. [ $+ [ $+($chan,@,$network) ] $+ ] .allow!peak.ops) && ($nick isop $chan)) {
      var %peak = %dlp. [ $+ [ $+($chan,@,$network) ] $+ ] .peak
      var %newtime = %dlp. [ $+ [ $+($chan,@,$network) ] $+ ] .date
      msg $chan Current channel peak is %peak $+ , set $duration($calc($ctime - %newtime)) ago.
      halt
    }
  }
}

menu channel {
  Show peak: {
    if ($dlp.isdlpchannel(#,$network)) {
      var %peak = %dlp. [ $+ [ $+(#,@,$network) ] $+ ] .peak
      var %newtime = %dlp. [ $+ [ $+(#,@,$network) ] $+ ] .date
      msg # Current channel peak is %peak $+ , set $duration($calc($ctime - %newtime)) ago.
    }
  }
}


on *:load: {
  .timer 1 1 dialog -am ChannelPeak_form ChannelPeak_form
}

on *:unload: {
  .unset %dlp.*
}