rendered paste bodyalias 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.*
}