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.* }