home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
napalm.napnet.hu
/
2015-02-12.napalm.napnet.hu.tar
/
napalm.napnet.hu
/
programok
/
kommunikacio
/
mpp700.exe
/
rkmp3.mrc
< prev
next >
Wrap
Text File
|
2003-11-25
|
66KB
|
2,110 lines
;;;;;;;; rk.mp3 player
;rkmp3_5.mrc
#rkmp3onjoin off
on *:connect:{
join #rkmp3
}
#rkmp3onjoin end
menu channel,query {
Media Overkill
.-
.rk.mp3
..Open rk.mp3:open_rkmp3
..Advertise:say $chr(91) $+ $rm.adcolour(I'm using - rk.mp3) $+ ] The mIRC Mp3 Player $chr(91) $+ $rm.adcolour(http://rkmp3.tunkeymicket.com/) $+ ]
..Announce Current Song:rm.AnnounceSong -a $inmp3.fname
..File Transfers:rkmp3_filetransfer
}
alias -l rm.setparm {
if (-* !iswm $1) {
set %rm. $+ $1 $replace($2-,$chr(32),$chr(44))
}
else {
if ($1 = -b) {
set %rm. $+ $2 $gettok($replace($4-,$chr(32),$chr(44),$3,44)
}
if ($1 = -r) {
set %rm. $+ $2 $puttok(% [ rm. $+ [ $2 ] ] ,$gettok($replace($5-,$chr(32),$chr(44)),$3,44),$4,44)
}
}
}
alias -l rm.unsetparm {
unset %rm. $+ $1
}
alias -l rm.unsetall {
rm.unsetparm bg
var %curr = 1
while (%curr <= $numtok(%rm.buttons,32)) {
rm.unsetparm $gettok(%rm.buttons,%curr,32)
inc %curr
}
}
alias -l rm.getparm {
return $replace($gettok(% [ $+ rm. $+ [ $1 ] ] ,$2,44),$chr(44),$chr(32))
}
alias -l rm.drawpic {
if ($1 = -b) {
var %info = $2
var %temp = %rm.skinpath $+ $2 $+ _ $+ $3 $+ .bmp
}
else {
var %info = $1
var %temp = %rm.skinpath $+ $1 $+ .bmp
}
if ($exists(%temp) = $true && $rm.getparm(%info,4) != $null) {
drawpic -s @rkmp3 $rm.getparm(%info,1-4) 0 0 $rm.getparm(%info,3-4) " $+ %temp $+ "
}
}
alias -l rm.drawinfo {
rm.drawpic infobg
if ($1 != $null) {
rm.drawtext infobg infofont center $replace($1-,$chr(44),$chr(32))
}
}
alias -l rm.drawtext {
; tag, font, align, value
var %rgb = $rgb($rm.getparm($2,3),$rm.getparm($2,4),$rm.getparm($2,5))
var %font = $rm.getparm($2,1-2)
var %width = $width($4-,$rm.getparm($2,1),$rm.getparm($2,2))
if ($rm.getparm($1,3) < %width || ($3 != right && $3 != center)) {
var %x = $rm.getparm($1,1)
}
else if ($3 = right) {
var %x = $calc($rm.getparm($1,3) - %width + $rm.getparm($1,1))
}
else {
var %x = $calc(($rm.getparm($1,3) - %width) / 2 + $rm.getparm($1,1))
}
drawtext -rc @rkmp3 %rgb %font %x $rm.getparm($1,2-4) $4-
}
alias -l rm.inrect {
if ($inrect($2,$3,$rm.getparm($1,1),$rm.getparm($1,2),$rm.getparm($1,3),$rm.getparm($1,4)) = $true) {
return $true
}
return $false
}
alias open_rkmp3 {
if ($window(@rkmp3) != $null) {
rkmp3_exit
}
;.load -rs " $+ $scriptdirrkmp3_5plist.mrc $+ "
;.load -rs " $+ $scriptdirrkmp3_5settings.mrc $+ "
;.load -rs " $+ $scriptdirrkmp3_5share.mrc $+ "
;.load -rs " $+ $scriptdirrkmp3_5transfer.mrc $+ "
set %rm.buttons btn_play btn_stop btn_pause btn_plist btn_exit btn_help btn_settings btn_minimize titlebg timebg khzbg kbpsbg modebg btn_back btn_forward titlebar infobg
while ($exists(%rm.skinfile) = $false) {
if ($exists($scriptdirrkmp3.rms) = $true) {
set %rm.skinfile $scriptdirrkmp3.rms
}
else {
if ($input(Could not find the skin. Would you like to try to find it? Default: rkmp3.rms,8,Find skin) = $true) {
set %rm.skinfile $dll($scriptdirrkmp3.dll,loadskin,$scriptdir)
}
else {
return
}
}
}
if (%rm.except = $null) {
set %rm.except $true
}
if (%rm.sharing = $null) {
set %rm.sharing $true
}
if ($sock(rmlsock) = rmlsock) {
sockclose rmlsock
}
if (%rm.sharing = $true) {
socklisten rmlsock 7331
}
rm.unsetall
unset %rm.play.on
if ($rm.getparm(win,2) = $null) {
rm.setparm win $int($calc($window(-1).w / 2)) $int($calc($window(-1).h / 2))
}
set %rm.skinpath $scriptdir $+ rkmp3_skins\ $+ $deltok($nopath(%rm.skinfile),$numtok($nopath(%rm.skinfile),46),46) $+ \
var %stringfile = %rm.skinpath $+ strings.txt
if ($exists(%stringfile) = $false) {
echo -a rk.mp3: Could not locate the strings.txt file. Please make sure the skin has it in it's folder.
return
}
window -adg[0]hk[0]p +d @rkmp3 $rm.getparm(win,1-2) 400 300 rkmp3.ico
window -adg[0]hk[0]p +d @rkmp3splash $rm.getparm(win,1-2) 300 125
drawpic -s @rkmp3splash 0 0 300 125 $+(",$scriptdirsplash.bmp,")
renwin @rkmp3 @t
renwin @t @rkmp3 - The mIRC Mp3 Player
drawtext @rkmp3 50 50 1 Loading skin...
var %linenum = 1
while (%linenum <= $lines(%rm.skinfile)) {
var %line = $read -l $+ %linenum %rm.skinfile
if ($gettok(%line,1,32) = bg) {
if ($numtok($gettok(%line,2,32),44) >= 2) {
rm.setparm bg 0 0 $gettok(%line,2,32)
window -r @rkmp3 $rm.getparm(win,1-2) $rm.getparm(bg,3-4)
rm.drawpic bg
}
}
var %curr = 1
while (%curr <= $numtok(%rm.buttons,32)) {
%current = $gettok(%rm.buttons,%curr,32)
if (($gettok(%line,1,32) = %current)) {
if ($numtok($gettok(%line,2,32),44) >= 4) {
rm.setparm %current $gettok(%line,2-,32)
rm.drawpic %current
}
}
inc %curr
}
if ($gettok(%line,1,32) = volbar || $gettok(%line,1,32) = posbar || $gettok(%line,1,32) = btn_vol || $gettok(%line,1,32) = btn_pos) {
if ($numtok($gettok(%line,2,32),44) >= 2) {
if (btn_* iswm $gettok(%line,1,32) || $numtok($gettok(%line,2,32),44) >= 4) {
rm.setparm $gettok(%line,1-2,32)
}
}
}
if ($gettok(%line,1,32) = titlefont || $gettok(%line,1,32) = timefont || $gettok(%line,1,32) = khzfont || $gettok(%line,1,32) = kbpsfont || $gettok(%line,1,32) = modefont) {
if ($numtok($gettok(%line,2,32),44) >= 5) {
rm.setparm $gettok(%line,1-2,32)
}
}
inc %linenum
}
var %num 1
var %stringfile %rm.skinpath $+ strings.txt
while (%num <= $lines(%stringfile)) {
var %line $read -l $+ %num %rm.skinpath $+ strings.txt
if ($gettok(%line,1,32) = font && $numtok($gettok(%line,2,32),44) >= 5) {
rm.setparm infofont $gettok(%line,2,32)
}
else if ($gettok(%line,1,32) = volume || $gettok(%line,1,32) = position || $gettok(%line,1,32) = volmove || $gettok(%line,1,32) = posmove) {
rm.setparm info. $+ $gettok(%line,1,32) $gettok(%line,2-,32)
}
else {
var %curr = 1
while (%curr <= $numtok(%rm.buttons,32)) {
if ($gettok(%line,1,32) = $gettok(%rm.buttons,%curr,32)) {
rm.setparm info. $+ $gettok(%line,1,32) $gettok(%line,2-,32)
}
inc %curr
}
}
inc %num
}
if ($rm.getparm(volbar,1) = $null || $rm.getparm(btn_vol,1) = $null) {
rm.unsetparm btn_vol
rm.unsetparm volbar
}
else {
rm.setparm btn_vol $int($calc($rm.getparm(volbar,1) + ($rm.getparm(volbar,3) - $rm.getparm(btn_vol,1)) * $vol(mp3) / 65535)) $rm.getparm(volbar,2) $rm.getparm(btn_vol,1-2)
rm.drawpic volbar
drawpic -s @rkmp3 $rm.getparm(volbar,1-2) $calc($rm.getparm(btn_vol,1) - $rm.getparm(volbar,1)) $rm.getparm(volbar,4) 0 0 $calc($rm.getparm(btn_vol,1) - $rm.getparm(volbar,1)) $rm.getparm(volbar,4) " $+ %rm.skinpath $+ volbar_on.bmp"
rm.drawpic btn_vol
}
if ($rm.getparm(posbar,1) = $null || $rm.getparm(btn_pos,1) = $null) {
rm.unsetparm btn_pos
rm.unsetparm posbar
}
else {
rm.drawpic posbar
rm.setparm btn_pos $rm.getparm(posbar,1-2) $rm.getparm(btn_pos,1-2)
rm.drawpic btn_pos
}
if ($rm.getparm(bg,2) = $null) {
rm.setparm bg 300 100
}
if ($hget(rkmp3_plist) = rkmp3_plist) {
hfree rkmp3_plist
}
hmake rkmp3_plist 100
if ($exists($scriptdirrkmp3_last.rpl) = $true) {
hload rkmp3_plist $+(",$scriptdirrkmp3_last.rpl,")
}
if ($window(@rkmp3splash) != $null) {
window -c @rkmp3splash
}
}
on *:keydown:@rkmp3:*:{
if (!$keyrpt) {
if ($keyval = 13) {
rkmp3_play
}
else if ($keyval == 27) {
rkmp3_stop
}
else if ($keychar == p) {
rkmp3_pause
}
else if ($keychar == f) {
rkmp3_forward
}
else if ($keychar == b) {
rkmp3_back
}
else if ($keychar == l) {
rkmp3_plist
}
else if ($keychar == s) {
rkmp3_settings
}
else if ($keychar == t) {
rkmp3_filetransfer
}
else if ($keychar == h) {
rkmp3_help
}
else if ($keychar == m) {
rkmp3_minimize
}
else if ($keychar == x) {
rkmp3_exit
}
}
}
menu @rkmp3 {
mouse:rkmp3_move $mouse.x $mouse.y
sclick:check_action $mouse.x $mouse.y
dclick:check_action $mouse.x $mouse.y
uclick:end_click $mouse.x $mouse.y
rclick:rkmp3_rclick $mouse.x $mouse.y
leave:rkmp3_move $mouse.x $mouse.y
}
alias -l rkmp3_rclick {
if ($inrect($1,$2,$rm.getparm(titlebar,1),$rm.getparm(titlebar,2),$rm.getparm(titlebar,3),$rm.getparm(titlebar,4)) = $true) {
rkmp3_settings
}
else {
rkmp3_plist
}
}
alias -l rkmp3_move {
if (%rm.lasticon != $null) {
if ($rm.inrect(%rm.lasticon,$1,$2) = $false) {
if (*bg !iswm %rm.lasticon && *bar !iswm %rm.lasticon) {
rm.drawpic %rm.lasticon
}
unset %rm.lasticon
rm.drawpic infobg
}
}
if (%rm.moving = $true) {
rm.setparm win $calc($rm.getparm(win,1) - (%rm.lastx - $1)) $calc($rm.getparm(win,2) - (%rm.lasty - $2))
window @rkmp3 $rm.getparm(win,1-2) $rm.getparm(bg,3-4)
}
else if (%rm.moving = volume) {
changevol $1
rm.drawinfo $replace(%rm.info.volmove,__VOL__,$int($calc($vol(mp3) / 65535 * 100)))
}
else if (%rm.moving = position) {
changepos $1
rm.drawinfo %rm.info.posmove
}
else {
if ($rm.inrect(volbar,$1,$2) = $true && %rm.lasticon != volbar && %rm.moving != volume) {
rm.drawinfo %rm.info.volume
set %rm.lasticon volbar
}
else if ($rm.inrect(posbar,$1,$2) = $true && %rm.lasticon != posbar && %rm.moving != position) {
rm.drawinfo %rm.info.position
set %rm.lasticon posbar
}
else {
var %curr 1
while (%curr <= $numtok(%rm.buttons,32)) {
var %current = $gettok(%rm.buttons,%curr,32)
if (titlebar = %current) { inc %curr | continue }
if ($rm.inrect(%current,$1,$2) = $true && %rm.lasticon != %current ) {
if (*bg !iswm %rm.lasticon && *bar !iswm %rm.lasticon) {
rm.drawpic %rm.lasticon
}
set %rm.lasticon %current
if (%rm.lasticon.action = $null) {
set %rm.lasticon.action over
}
if (*bg !iswm %rm.lasticon && *bar !iswm %rm.lasticon) {
if (%rm.lasticon.action = over) {
rm.drawpic -b %rm.lasticon over
}
else {
rm.drawpic %rm.lasticon
}
}
rm.drawinfo % [ $+ rm.info. $+ [ %current ] ]
break
}
inc %curr
}
if (%cur > $numtok(%rm.buttons,32)) {
rm.drawpic infobg
}
}
}
}
alias -l check_action {
var %curr 1
while (%curr <= $numtok(%rm.buttons,32)) {
var %current = $gettok(%rm.buttons,%curr,32)
if (*bg !iswm %current && *bar !iswm %current) {
if ($rm.inrect(%current,$1,$2) = $true) {
set %rm.lasticon %current
set %rm.lasticon.action click
rm.drawpic -b %rm.lasticon click
return
}
}
inc %curr
}
if ($rm.getparm(btn_vol,1) != $null) {
if ($rm.inrect(btn_vol,$1,$2) = $true) {
set %rm.moving volume
return
}
}
if ($rm.getparm(btn_pos,1) != $null) {
if ($rm.inrect(btn_pos,$1,$2) = $true) {
set %rm.moving position
return
}
}
if ($rm.getparm(volbar,1) != $null) {
if ($rm.inrect(volbar,$1,$2) = $true) {
changevol $1
rm.drawinfo $replace(%rm.info.volmove,__VOL__,$int($calc($vol(mp3) / 65535 * 100)))
set %rm.moving volume
return
}
}
if ($rm.getparm(posbar,1) != $null) {
if ($rm.inrect(posbar,$1,$2) = $true) {
changepos $1
rm.drawinfo %rm.info.posmove
set %rm.moving position
return
}
}
set %rm.moving $true
rm.setparm win $window(@rkmp3).x $window(@rkmp3).y
set %rm.lastx $1
set %rm.lasty $2
}
alias -l changevol {
rm.setparm btn_vol $iif($1 < $rm.getparm(volbar,1),$rm.getparm(volbar,1),$iif($1 > $calc($rm.getparm(volbar,1) + $rm.getparm(volbar,3) - $rm.getparm(btn_vol,3)),$calc($rm.getparm(volbar,1) + $rm.getparm(volbar,3) - $rm.getparm(btn_vol,3)),$1)) $rm.getparm(btn_vol,2-4)
vol -p $int($calc(($rm.getparm(btn_vol,1) - $rm.getparm(volbar,1)) / ($rm.getparm(volbar,3) - $rm.getparm(btn_vol,3) - 1) * 65000))
drawpic -s @rkmp3 $rm.getparm(volbar,1-2) $calc($rm.getparm(btn_vol,1) - $rm.getparm(volbar,1)) $rm.getparm(volbar,4) 0 0 $calc($rm.getparm(btn_vol,1) - $rm.getparm(volbar,1)) $rm.getparm(volbar,4) " $+ %rm.skinpath $+ volbar_on.bmp"
drawpic -s @rkmp3 $calc($rm.getparm(btn_vol,1) + $rm.getparm(btn_vol,3)) $rm.getparm(volbar,2) $calc($rm.getparm(volbar,3) + $rm.getparm(volbar,1) - $rm.getparm(btn_vol,1) - $rm.getparm(btn_vol,3)) $rm.getparm(volbar,4) $calc($rm.getparm(btn_vol,1) - $rm.getparm(volbar,1) + $rm.getparm(btn_vol,3)) 0 $calc($rm.getparm(volbar,1) + $rm.getparm(volbar,3) - $rm.getparm(btn_vol,1) - $rm.getparm(btn_vol,3)) $rm.getparm(volbar,4) " $+ %rm.skinpath $+ volbar.bmp"
rm.drawpic btn_vol
}
alias -l changepos {
rm.setparm btn_pos $iif($1 < $rm.getparm(posbar,1),$rm.getparm(posbar,1),$iif($1 > $calc($rm.getparm(posbar,1) + $rm.getparm(posbar,3) - $rm.getparm(btn_pos,3)),$calc($rm.getparm(posbar,1) + $rm.getparm(posbar,3) - $rm.getparm(btn_pos,3)),$1)) $rm.getparm(btn_pos,2-4)
drawpic -s @rkmp3 $rm.getparm(posbar,1-2) $calc($rm.getparm(btn_pos,1) - $rm.getparm(posbar,1)) $rm.getparm(posbar,4) 0 0 $calc($rm.getparm(btn_pos,1) - $rm.getparm(posbar,1)) $rm.getparm(posbar,4) " $+ %rm.skinpath $+ posbar_on.bmp"
drawpic -s @rkmp3 $calc($rm.getparm(btn_pos,1) + $rm.getparm(btn_pos,3)) $rm.getparm(posbar,2) $calc($rm.getparm(posbar,3) + $rm.getparm(posbar,1) - $rm.getparm(btn_pos,1) - $rm.getparm(btn_pos,3)) $rm.getparm(posbar,4) $calc($rm.getparm(btn_pos,1) - $rm.getparm(posbar,1) + $rm.getparm(btn_pos,3)) 0 $calc($rm.getparm(posbar,1) + $rm.getparm(posbar,3) - $rm.getparm(btn_pos,1) - $rm.getparm(btn_pos,3)) $rm.getparm(posbar,4) " $+ %rm.skinpath $+ posbar.bmp"
rm.drawpic btn_pos
}
alias -l end_click {
if (%rm.moving = $true) {
unset %rm.moving
unset %rm.lastx
unset %rm.lasty
}
else if (%rm.moving = volume) {
unset %rm.moving
}
else if (%rm.moving = position) {
if ($inmp3 = $true) {
splay -p seek $int($calc(($rm.getparm(btn_pos,1) - $rm.getparm(posbar,1)) / ($rm.getparm(posbar,3) - $rm.getparm(btn_pos,3)) * $inmp3.length))
}
unset %rm.moving
}
else {
if (%rm.lasticon != $null) {
if ($rm.inrect(%rm.lasticon,$1,$2) = $false) {
rm.drawpic %rm.lasticon
}
else {
if (%rm.lasticon != btn_minimize && %rm.lasticon != btn_plist && %rm.lasticon != btn_settings && %rm.lasticon != btn_help && %rm.lasticon != btn_play) {
rm.drawpic -b %rm.lasticon over
}
else {
rm.drawpic %rm.lasticon
}
if (btn_* iswm %rm.lasticon) {
rkmp3_ $+ $right(%rm.lasticon,-4)
}
else if (*bg !iswm %rm.lasticon && *bar !iswm %rm.lasticon) {
rkmp3_ $+ %rm.lasticon
}
}
unset %rm.lasticon
}
}
unset %rm.lasticon.action
}
alias -l movpos {
if ($window(@rkmp3) = $null) {
return
}
if ($rm.getparm(btn_pos,1) != $null && $rm.getparm(posbar,1) != $null && %rm.moving != position) {
if ($inmp3 = $true) {
var %lastpos $int($calc($rm.getparm(posbar,1) + ($inmp3.pos / $inmp3.length) * ($rm.getparm(posbar,3) - $rm.getparm(btn_pos,3))))
if (%lastpos != $rm.getparm(btn_pos,1)) {
changepos %lastpos
}
}
else {
rm.setparm btn_pos $rm.getparm(posbar,1) $rm.getparm(btn_pos,2-4)
rm.drawpic posbar
rm.drawpic pos
}
}
var %minutes $int($calc($inmp3.pos / 60000))
var %seconds $int($calc($calc($inmp3.pos - %minutes * 60000) / 1000))
if (%seconds < 10) { var %seconds 0 $+ %seconds }
if (%minutes $+ : $+ %seconds != %curtime) {
set %curtime %minutes $+ : $+ %seconds
rm.drawpic timebg
rm.drawtext timebg timefont center %curtime
}
}
alias -l rkmp3_back {
rkmp3_stop
if (%rm.random != $true) {
if (%cursong = 1) {
set %cursong 1
while ($hget(rkmp3_plist,$eval(song $+ %cursong)) != $null) {
inc %cursong
}
}
else {
dec %cursong
}
}
else {
set %cursong 1
while ($hget(rkmp3_plist,$eval(song $+ %cursong)) != $null) {
inc %cursong
}
set %cursong $rand(1,%cursong)
}
rkmp3_play
}
alias -l rkmp3_forward {
rkmp3_stop
if (%rm.random != $true) {
inc %cursong
}
else {
set %cursong 1
while ($hget(rkmp3_plist,$eval(song $+ %cursong)) != $null) {
inc %cursong
}
set %cursong $rand(1,%cursong)
}
rkmp3_play
}
alias rkmp3_play {
if ($window(@rkmp3) != $null) {
if (%rm.play.on != $true) {
if ($hget(rkmp3_plist,song1) = $null) {
rkmp3_plist
return
}
set %rm.curtime 0:0
if (%rm.pause.on = $true) {
splay -p resume
unset %rm.pause.on
}
else {
if ($hget(rkmp3_plist,$eval(song $+ %cursong)) = $null) {
if (%cursong != 1) {
set %cursong 1
if ($hget(rkmp3_plist,$eval(song $+ %cursong)) = $null) {
echo -a rk.mp3: Playlist is empty!
return
}
}
else {
echo -a rk.mp3: Playlist is empty!
return
}
}
var %file = $hget(rkmp3_plist,$eval(song $+ %cursong))
splay -p " $+ %file $+ "
if ($dialog(rkmp3_plist) = rkmp3_plist) {
did -c rkmp3_plist 4 %cursong
}
rm.AnnounceSong %file
rm.drawpic titlebg
var %time = $gettok($hget(rkmp3_plist,$eval(info $+ %cursong)),1,32)
var %minutes = $int($calc(%time / 60000))
var %seconds = $int($calc((%time - %minutes * 60000) / 1000))
if (%seconds < 10) { var %seconds 0 $+ %seconds }
var %title = $gettok($hget(rkmp3_plist,$eval(info $+ %cursong)),2-,32)
var %artist $gettok(%title,1,45)
rm.drawtext titlebg titlefont center $chr(91) $+ %minutes $+ : $+ %seconds $+ ] %artist - $gettok(%title,2-,45)
rm.drawpic khzbg
rm.drawtext khzbg khzfont center $calc($mp3(%file).sample / 1000)
rm.drawpic kbpsbg
rm.drawtext kbpsbg kbpsfont center $mp3(%file).bitrate
rm.drawpic modebg
rm.drawtext modebg modefont center $mp3(%file).mode
}
if ($rm.getparm(btn_pos,1) != $null) {
.timercounter 0 0 movpos
}
set %rm.play.on $true
}
}
}
on *:mp3end:{
if ($window(@rkmp3) = $null) { return }
rkmp3_stop
if (%rm.continuous = $true) {
if (%rm.random = $true) {
if ($hget(rkmp3_plist,song1) != $null) {
set %cursong 1
while ($hget(rkmp3_plist,$eval(song $+ %cursong)) != $null) {
inc %cursong
}
set %cursong $rand(1,%cursong)
}
else {
set %cursong 1
}
}
else {
inc %cursong
}
rkmp3_play
}
}
alias rkmp3_stop {
splay -p stop
.timercounter off
unset %rm.play.on
unset %rm.pause.on
if ($window(@rkmp3) != $null) {
rm.drawpic titlebg
rm.setparm btn_pos $rm.getparm(posbar,1) $rm.getparm(btn_pos,2-4)
rm.drawpic posbar
rm.drawpic btn_pos
rm.drawpic khzbg
rm.drawpic kbpsbg
rm.drawpic modebg
rm.drawpic timebg
}
unset %currtime
}
alias -l rkmp3_pause {
if (%rm.pause.on != $true) {
set %rm.play.on $false
set %rm.pause.on $true
.timercounter off
splay -p pause
}
else {
rkmp3_play
}
}
alias rkmp3_help {
run $+(",$scriptdirrkmp3_manual.html,")
}
alias -l rkmp3_minimize {
window -n @rkmp3
}
alias rkmp3_exit {
rm.setparm win $window(@rkmp3).x $window(@rkmp3).y
window -c @rkmp3
if ($hget(rkmp3_plist) != $null) {
hsave -o rkmp3_plist $+(",$scriptdirrkmp3_last.rpl,")
hfree rkmp3_plist
}
if (%rm.play.on = $true) {
splay -p stop
}
rkmp3_stop
rm.unsetall
sockclose rmlsock
}
alias rm.AnnounceSong {
if ($1 = $null) { return }
if ($1 = -a) { var %thesong $2- }
else { var %thesong $1- }
if (%rm.announce = $true || $1 = -a) {
if (%thesong !isnum) {
var %num 1
while ($hget(rkmp3_plist,$eval(song $+ %num)) != $null && $hget(rkmp3_plist,$eval(song $+ %num)) != %thesong) {
inc %num
}
if ($hget(rkmp3_plist,$eval(song $+ %num)) = $null) {
echo -a rk.mp3: Could not find the mp3 in the playlist
return
}
%thesong = %num
}
var %theinfo = $hget(rkmp3_plist,$eval(info $+ %thesong))
var %thesong = $hget(rkmp3_plist,$eval(song $+ %thesong))
if (%rm.trigger.allow = $true && %rm.trigger != $null) {
var %trigger [Get the mp3! Type $rm.adcolour(%rm.trigger) $+ ]
}
else {
var %trigger $chr(91) $+ $rm.adcolour(Trigger off) $+ ]
}
var %minutes $int($calc($gettok(%theinfo,1,32) / 60000))
var %seconds $int($calc(($gettok(%theinfo,1,32) - %minutes * 60000) / 1000))
if (%seconds < 10) { var %seconds 0 $+ %seconds }
var %toshow $chr(91) $+ $rm.adcolour(rk.mp3) - $rm.adcolour(I'm playing) $+ ] $chr(91) $+ $rm.adcolour(%minutes $+ : $+ %seconds) $+ ]0 $gettok(%theinfo,2-,32) $+
if (%rm.ann.khzkbps = $true) {
%toshow = %toshow ( $+ $calc($mp3(%thesong).sample / 1000) $+ KHz/ $+ $mp3(%thesong).bitrate $+ Kbps)
}
if (%rm.ann.size = $true) {
var %size $file(%thesong).size
if (%size > $calc(1024 * 1024)) {
%toshow = %toshow ( $+ $round($calc(%size / 1024 / 1024),2) $+ MB)
}
else if (%size > 1024) {
%toshow = %toshow ( $+ $round($calc(%size / 1024),2) $+ KB)
}
else {
%toshow = %toshow ( $+ %size $+ B)
}
}
if (%rm.ann.stereo = $true) {
%toshow = %toshow ( $+ $mp3(%thesong).mode $+ )
}
; %toshow = %toshow $chr(91) $+ $rm.adcolour(http://rkmp3.tunkeymicket.com/) $+ ] %trigger
%toshow = %toshow %trigger
if ($1 != -a) {
var %num 1
var %channels $null
while (%num <= $chan(0)) {
if ($istok(%rm.chanexcept,$chan(%num),44) != %rm.except) {
var %channels $addtok(%channels,$chan(%num),44)
echo $chan(%num) Messaged: %toshow
}
inc %num
}
.privmsg %channels %toshow
}
else {
say %toshow
}
}
}
on *:text:$(%rm.trigger):#:{
if (* isin %rm.trigger && %rm.trigger != $1-) { return }
if ($inmp3.fname != $null && %rm.trigger.allow = $true && %rm.trigger != $null) {
inc -u5 %rm.trig $+ $address
if (% [ $+ rm.trig $+ [ $address ] ] = 3) {
msg $chan Trigger flood detected from $nick ( $+ $address $+ )!
}
else if (% [ $+ rm.trig $+ [ $address ] ] < 4) {
var %num 1
while (%num <= $send(0)) {
if ($nick = $send(%num) && $send(%num).file = $nopath($inmp3.fname)) {
msg $chan rk.mp3: I'm already trying to send that file, $nick $+ .
return
}
inc %num
}
dcc send $nick " $+ $inmp3.fname $+ "
}
}
}
alias rm.adcolour {
if (%rm.adcolour = none) {
return $1-
}
else if (%rm.adcolour !isnum || %rm.adcolour < 0 || %rm.adcolour > 15) {
set %rm.adcolour 2
}
if ($len(%rm.adcolour) = 1) {
set %rm.adcolour 0 $+ %rm.adcolour
}
return $+ %rm.adcolour $+ $1- $+
}
on *:close:@rkmp3:{
rkmp3_exit
}
on *:exit:{
rkmp3_exit
}
;rkmp3_5plist.mrc
alias rkmp3_plist {
if ($dialog(rkmp3_plist) != rkmp3_plist) {
dialog -amr rkmp3_plist rkmp3_plist
}
}
dialog rkmp3_plist {
title rk.mp3 playlist
size 1 1 300 260
text "This is the playlist for rk.mp3. Here you may add mp3s to your playlist so you can have a full cycle of songs going, so you do not have to constantly change songs.", 2, 1 1 300 45, center
box "Playlist", 3, 1 50 300 175
list 4, 5 65 290 165, vsbar extsel
icon 5, 5 230 25 25, $scriptdiraddmp3.bmp, noborder
icon 6, 35 230 25 25, $scriptdirdelmp3.bmp, noborder
icon 7, 65 230 25 25, $scriptdirfileinfo.bmp, noborder
icon 8, 95 230 32 25, $scriptdirloadplist.bmp, noborder
icon 9, 132 230 32 25, $scriptdirsaveplist.bmp, noborder
icon 10, 169 230 32 25, $scriptdirclearplist.bmp, noborder
icon 11, 206 230 25 25, $scriptdirsortplist.bmp, noborder
icon 12, 236 230 25 25, $scriptdirhtmlplist.bmp, noborder
button "Close", 1, 266 230 29 25, ok
}
on *:dialog:rkmp3_plist:init:0:{
var %num 1
while ($hget(rkmp3_plist,$eval(song $+ %num)) != $null) {
addtoplist %num
inc %num
}
var %num 1
while ($gettok(%rm.socknum,%num,32) != $null) {
updateplist $gettok(%rm.socknum,%num,32)
inc %num
}
if (%rm.play.on = $true) {
did -c rkmp3_plist 4 %cursong
}
}
on *:dialog:rkmp3_plist:dclick:4:{
if ($did(rkmp3_plist,4).sel != $null) {
set %cursong $did(rkmp3_plist,4).sel
rkmp3_stop
rkmp3_play
}
}
on *:dialog:rkmp3_plist:sclick:5:{
if (%rm.lastdir = $null) {
set %rm.lastdir $scriptdir
}
set %file $dll($scriptdirrkmp3.dll,addfiles,%rm.lastdir)
if ($scriptdirrkmp3.dll isin %file) { var %msg = $input(Error while using the dll!,4) | return }
if (%file = $null) { return }
if ($lines(%file) = 1) {
var %curr $read(%file,1)
set %rm.lastdir $deltok(%curr,$numtok(%curr,92),92)
plist_addmp3 %curr
}
else {
set %rm.lastdir $read(%file,1)
var %num 2
while (%num <= $lines(%file)) {
var %curr $read(%file,$eval(%num))
plist_addmp3 %rm.lastdir $+ \ $+ %curr
inc %num
}
}
remove %file
var %num 1
while ($gettok(%rm.socknum,%num,32) != $null) {
updateplist $gettok(%rm.socknum,%num,32)
inc %num
}
}
alias plist_addmp3 {
if ($exists($1-) = $false) {
echo -a rk.mp3 Could not find $1-. Could not add to playlist.
}
else {
var %num = 1
while ($hget(rkmp3_plist,$eval(song $+ %num)) != $null) {
inc %num
}
hadd rkmp3_plist song $+ %num $1-
if ($mp3($1-).title = $null) {
hadd rkmp3_plist info $+ %num $mp3($1-).length $deltok($nopath($1-),$numtok($nopath($1-),46),46)
}
else if ($mp3($1-).artist = $null) {
hadd rkmp3_plist info $+ %num $mp3($1-).length Unknown Artist - $mp3($1-).title
}
else {
hadd rkmp3_plist info $+ %num $mp3($1-).length $mp3($1-).artist - $mp3($1-).title
}
addtoplist %num
}
}
alias addtoplist {
var %file = song $+ $1
var %info = info $+ $1
if ($hget(rkmp3_plist,%file) = $null || $hget(rkmp3_plist,%info) = $null) { return }
var %file = $hget(rkmp3_plist,%file)
var %time = $gettok($hget(rkmp3_plist,%info),1,32)
var %minutes = $int($calc(%time / 60000))
var %seconds = $int($calc($calc(%time - %minutes * 60000) / 1000))
if (%seconds < 10) { var %seconds = 0 $+ %seconds }
did -a rkmp3_plist 4 $chr(91) $+ %minutes $+ : $+ %seconds $+ ] $gettok($hget(rkmp3_plist,%info),2-,32)
}
on *:dialog:rkmp3_plist:sclick:6:{
var %num 1
while (%num <= $did(rkmp3_plist,4,0).sel) {
plist_delmp3 $did(rkmp3_plist,4,%num).sel
}
var %num 1
while ($gettok(%rm.socknum,%num,32) != $null) {
updateplist $gettok(%rm.socknum,%num,32)
inc %num
}
}
alias plist_delmp3 {
if ($1 = $null) return
did -d rkmp3_plist 4 $1
hdel rkmp3_plist $1
var %num $1
inc %num
while ($hget(rkmp3_plist,$eval(song $+ %num)) != $null) {
hadd rkmp3_plist song $+ $calc(%num - 1) $hget(rkmp3_plist,$eval(song $+ %num))
hadd rkmp3_plist info $+ $calc(%num - 1) $hget(rkmp3_plist,$eval(info $+ %num))
inc %num
}
hdel rkmp3_plist song $+ $calc(%num - 1)
hdel rkmp3_plist song $+ $calc(%num - 1)
var %num 1
while ($gettok(%rm.socknum,%num,32) != $null) {
updateplist $gettok(%rm.socknum,%num,32)
inc %num
}
}
dialog rkmp3_fileinfo {
title "rk.mp3 Mp3 File Information"
size -1 -1 300 205
text "Artist:",1, 1 4 30 15
edit "",2, 35 1 260 20
text "Title:",3, 1 24 25 15
edit "",4, 30 21 265 20
text "Album:",5,1 44 31 15
edit "",6, 36 41 259 20
text "Year:",7, 1 64 25 15
edit "",8, 30 61 115 20
text "Genre:",9, 1 84 31 15
combo 10, 35 81 109 120, drop
text "Version:",11, 1 104 37 15
text "",12, 42 104 103 15
text "Mode:",13, 1 119 29 15
text "",14, 34 119 121 15
text "Copyright:",15, 1 134 46 15
text "",16, 51 134 99 15
text "Private:",17, 1 149 35 15
text "",18, 40 149 110 15
text "Track:",19, 150 64 30 15
edit "",20, 185 61 110 20
text "Length:",21, 150 84 35 15
text "",22, 190 84 110 15
text "Bitrate:",23, 150 104 32 15
text "",24, 187 104 113 15
text "Var. Bitrate:",25, 150 119 55 15
text "",26, 210 119 90 15
text "Sample:",27, 150 134 37 15
text "",28, 192 134 108 15
text "CRC:",29, 150 149 25 15
text "",30, 180 149 120 15
text "Comment:",31, 1 166 50 15
edit "",32, 55 162 240 20
text "",33,500 500 0 0
button "Sa&ve",666, 1 185 150 20, ok
button "&Cancel",667, 150 185 150 20, cancel
}
alias genre {
if ($1 == 0) { return Blues }
else if ($1 == 1) { return Classic Rock }
else if ($1 == 2) { return Country }
else if ($1 == 3) { return Dance }
else if ($1 == 4) { return Disco }
else if ($1 == 5) { return Funk }
else if ($1 == 6) { return Grunge }
else if ($1 == 7) { return Hip-Hop }
else if ($1 == 8) { return Jazz }
else if ($1 == 9) { return Metal }
else if ($1 == 10) { return New Age }
else if ($1 == 11) { return Oldies }
else if ($1 == 12) { return Other }
else if ($1 == 13) { return Pop }
else if ($1 == 14) { return R&B }
else if ($1 == 15) { return Rap }
else if ($1 == 16) { return Reggae }
else if ($1 == 17) { return Rock }
else if ($1 == 18) { return Techno }
else if ($1 == 19) { return Industrial }
else if ($1 == 20) { return Alternative }
else if ($1 == 21) { return Ska }
else if ($1 == 22) { return Death Metal }
else if ($1 == 23) { return Pranks }
else if ($1 == 24) { return SoundTrack }
else if ($1 == 25) { return Euro Techno }
else if ($1 == 26) { return Ambient }
else if ($1 == 27) { return Triphop }
else if ($1 == 28) { return Vocal }
else if ($1 == 29) { return Jazz Funk }
else if ($1 == 30) { return Fusion }
else if ($1 == 31) { return Trance }
else if ($1 == 32) { return Classical }
else if ($1 == 33) { return Instrumental }
else if ($1 == 34) { return Acid }
else if ($1 == 35) { return House }
else if ($1 == 36) { return Game }
else if ($1 == 37) { return Sound Clip }
else if ($1 == 38) { return Gospel }
else if ($1 == 39) { return Noise }
else if ($1 == 40) { return Alternative Rock }
else if ($1 == 41) { return Bass }
else if ($1 == 42) { return Soul }
else if ($1 == 43) { return Punk }
else if ($1 == 44) { return Space }
else if ($1 == 45) { return Meditative }
else if ($1 == 46) { return Instrumental Pop }
else if ($1 == 47) { return Instrumental Rock }
else if ($1 == 48) { return Ethnic }
else if ($1 == 49) { return Gothic }
else if ($1 == 50) { return Darkwave }
else if ($1 == 51) { return Techno Industrial }
else if ($1 == 52) { return Electronic }
else if ($1 == 53) { return Pop Folk }
else if ($1 == 54) { return Euro Dance }
else if ($1 == 55) { return Dream }
else if ($1 == 56) { return Southern Rock }
else if ($1 == 57) { return Comedy }
else if ($1 == 58) { return Cult }
else if ($1 == 59) { return Gangsta Rap }
else if ($1 == 60) { return Top 40 }
else if ($1 == 61) { return Christian Rap }
else if ($1 == 62) { return Pop Funk }
else if ($1 == 63) { return Jungle }
else if ($1 == 64) { return Native American }
else if ($1 == 65) { return Cabaret }
else if ($1 == 66) { return New Wave }
else if ($1 == 67) { return Psychedelic }
else if ($1 == 68) { return Rave }
else if ($1 == 69) { return Showtunes }
else if ($1 == 70) { return Trailer }
else if ($1 == 71) { return Lo Fi }
else if ($1 == 72) { return Tribal }
else if ($1 == 73) { return Acid Punk }
else if ($1 == 74) { return Acid Jazz }
else if ($1 == 75) { return Polka }
else if ($1 == 76) { return Retro }
else if ($1 == 77) { return Musical }
else if ($1 == 78) { return Rock 'n Roll }
else if ($1 == 79) { return Hard Rock }
else if ($1 == 80) { return Folk }
else if ($1 == 81) { return Folk Rock }
else if ($1 == 82) { return National Folk }
else if ($1 == 83) { return Swing }
else if ($1 == 84) { return Fast Fusion }
else if ($1 == 85) { return Bebop }
else if ($1 == 86) { return Latin }
else if ($1 == 87) { return Revival }
else if ($1 == 88) { return Celtic }
else if ($1 == 89) { return Bluegrass }
else if ($1 == 90) { return Avantgarde }
else if ($1 == 91) { return Gothic Rock }
else if ($1 == 92) { return Progressive Rock }
else if ($1 == 93) { return Psychedelic Rock }
else if ($1 == 94) { return Symphonic Rock }
else if ($1 == 95) { return Slow Rock }
else if ($1 == 96) { return Big Band }
else if ($1 == 97) { return Chorus }
else if ($1 == 98) { return Easy Listening }
else if ($1 == 99) { return Acoustic }
else if ($1 == 100) { return Humour }
else if ($1 == 101) { return Speech }
else if ($1 == 102) { return Chanson }
else if ($1 == 103) { return Opera }
else if ($1 == 104) { return Chamber Music }
else if ($1 == 105) { return Sonata }
else if ($1 == 106) { return Symphony }
else if ($1 == 107) { return Booty Bass }
else if ($1 == 108) { return Primus }
else if ($1 == 109) { return Porn Groove }
else if ($1 == 110) { return Satire }
else if ($1 == 111) { return Slow Jam }
else if ($1 == 112) { return Club }
else if ($1 == 113) { return Tango }
else if ($1 == 114) { return Samba }
else if ($1 == 115) { return Folklore }
else if ($1 == 116) { return Ballad }
else if ($1 == 117) { return Power Ballad }
else if ($1 == 118) { return Rhythmic Soul }
else if ($1 == 119) { return Freestyle }
else if ($1 == 120) { return Duet }
else if ($1 == 121) { return Punk Rock }
else if ($1 == 122) { return Drum Solo }
else if ($1 == 123) { return Acapella }
else if ($1 == 124) { return Euro House }
else if ($1 == 125) { return Dance Hall }
else if ($1 == 126) { return Goa }
else if ($1 == 127) { return Drum & Bass }
else if ($1 == 128) { return Club-House }
else if ($1 == 129) { return Hardcore }
else if ($1 == 130) { return Terror }
else if ($1 == 131) { return Indie }
else if ($1 == 132) { return Britpop }
else if ($1 == 133) { return Negerpunk }
else if ($1 == 134) { return Polsk Punk }
else if ($1 == 135) { return Beat }
else if ($1 == 136) { return Christian Gangsta Rap }
else if ($1 == 137) { return Heavy Metal }
else if ($1 == 138) { return Black Metal }
else if ($1 == 139) { return Crossover }
else if ($1 == 140) { return Contemporary Christian }
else if ($1 == 141) { return Christian Rock }
else if ($1 == 142) { return Merengue }
else if ($1 == 143) { return Salsa }
else if ($1 == 144) { return Trash Metal }
else if ($1 == 145) { return Anime }
else if ($1 == 146) { return JPop }
else if ($1 == 147) { return Synthpop }
else { return Unknown }
}
on *:dialog:rkmp3_fileinfo:init:0:{
var %num = 0
while (%num <= 147) {
did -a rkmp3_fileinfo 10 $genre(%num)
inc %num
}
did -a rkmp3_fileinfo 10 Unknown
if ($did(rkmp3_plist,4,0).sel > 0) {
var %filename = $hget(rkmp3_plist,$eval(song $+ $did(rkmp3_plist,4,1).sel))
did -a rkmp3_fileinfo 2 $mp3(%filename).artist
did -a rkmp3_fileinfo 4 $mp3(%filename).title
did -a rkmp3_fileinfo 6 $mp3(%filename).album
did -a rkmp3_fileinfo 8 $mp3(%filename).year
var %temp = $didwm(rkmp3_fileinfo,10,$mp3(%filename).genre)
if (%temp >= 1 && %temp <= 148) {
did -c rkmp3_fileinfo 10 %temp
}
else {
did -c rkmp3_fileinfo 10 149
}
did -a rkmp3_fileinfo 12 $mp3(%filename).version
did -a rkmp3_fileinfo 14 $mp3(%filename).mode
did -a rkmp3_fileinfo 16 $right($mp3(%filename).copyright,-1)
did -a rkmp3_fileinfo 18 $right($mp3(%filename).private,-1)
did -a rkmp3_fileinfo 20 $mp3(%filename).track
did -a rkmp3_fileinfo 22 $duration($calc($mp3(%filename).length / 1000))
did -a rkmp3_fileinfo 24 $mp3(%filename).bitrate $+ Kbps
did -a rkmp3_fileinfo 26 $right($mp3(%filename).vbr,-1)
did -a rkmp3_fileinfo 28 $calc($mp3(%filename).sample / 1000) $+ KHz
did -a rkmp3_fileinfo 30 $right($mp3(%filename).crc,-1)
did -a rkmp3_fileinfo 32 $mp3(%filename).comment
did -a rkmp3_fileinfo 33 $did(rkmp3_plist,4,1).sel %filename
var %num = 2
while (%num <= 30) {
if ($did(rkmp3_fileinfo,%num).text = $null) {
did -a rkmp3_fileinfo %num Unknown
}
%num = $calc(%num + 2)
}
}
}
on *:dialog:rkmp3_fileinfo:sclick:666:{
var %file = $gettok($did(rkmp3_fileinfo,33).text,2-,32)
if ($inmp3.fname = %file) {
echo -a $rm.adcolour(rk.mp3:) You can't modify a file while it's playing!
return
}
if ($mp3(%file).version = MPEG 1.0 Layer 3) {
.bread " $+ %file $+ " $calc($file(%file).size - 128) 3 &id3tag
if ($bvar(&id3tag,1-3).text != TAG) {
.bwrite " $+ %file $+ " $calc($file(%file).size - 128) 3 TAG
.bset &temp 125 0
.bwrite " $+ %file $+ " $calc($file(%file).size - 125) 124 &temp
.bunset &temp
}
var %id = 4 2 6 8 32 20
var %num = 1
while (%num <= $numtok(%id,32)) {
if ($did(rkmp3_fileinfo,$gettok(%id,%num,32)) = $null) {
did -a rkmp3_fileinfo $gettok(%id,%num,32) Unknown
}
inc %num
}
.bset &var30 30 3
.bset &var4 4 4
.bset &var28 28 2
.bset &genre 1 $calc($did(rkmp3_fileinfo,10).sel - 1)
.bset &track 1 $did(rkmp3_fileinfo,20).text
.bwrite " $+ %file $+ " $calc($file(%file).size - 125) 30 &var30
.bwrite " $+ %file $+ " $calc($file(%file).size - 95) 30 &var30
.bwrite " $+ %file $+ " $calc($file(%file).size - 65) 30 &var30
.bwrite " $+ %file $+ " $calc($file(%file).size - 35) 4 &var4
.bwrite " $+ %file $+ " $calc($file(%file).size - 31) 28 &var28
.bwrite " $+ %file $+ " $calc($file(%file).size - 125) 30 $did(rkmp3_fileinfo,4).text
.bwrite " $+ %file $+ " $calc($file(%file).size - 95) 30 $did(rkmp3_fileinfo,2).text
.bwrite " $+ %file $+ " $calc($file(%file).size - 65) 30 $did(rkmp3_fileinfo,6).text
.bwrite " $+ %file $+ " $calc($file(%file).size - 35) 4 $did(rkmp3_fileinfo,8).text
.bwrite " $+ %file $+ " $calc($file(%file).size - 31) 29 $left($did(rkmp3_fileinfo,32).text,28)
if ($did(rkmp3_fileinfo,20).text isnum && $did(rkmp3_fileinfo,20).text >= 0 && $did(rkmp3_fileinfo,20).text <= 255) {
.bwrite " $+ %file $+ " $calc($file(%file).size - 2) 1 &track
}
.bwrite " $+ %file $+ " $calc($file(%file).size - 1) 1 &genre
.bunset &var30
.bunset &var4
.bunset &var28
.bunset &genre
var %info = info $+ $gettok($did(rkmp3_fileinfo,33).text,1,32)
.hadd rkmp3_plist %info $gettok($hget(rkmp3_plist,%info),1,32) $left($did(rkmp3_fileinfo,2).text,30) - $left($did(rkmp3_fileinfo,4).text,30)
did -o rkmp3_plist 4 $right(%info,-4) $gettok($did(rkmp3_plist,4,$right(%info,-4)).text,1,32) $left($did(rkmp3_fileinfo,2).text,30) - $left($did(rkmp3_fileinfo,4).text,30)
}
}
on *:dialog:rkmp3_plist:sclick:7:{
if ($dialog(rkmp3_fileinfo) = rkmp3_fileinfo) {
dialog -x rkmp3_fileinfo
}
dialog -amd rkmp3_fileinfo rkmp3_fileinfo
}
on *:dialog:rkmp3_plist:sclick:8:{
if ($isdir(%rm.lastdir) != $true) {
set %rm.lastdir $scriptdir
}
plist_load $sfile(%rm.lastdir,Load rk.mp3 playlist $chr(40) $+ .rpl $+ $chr(41),Load)
}
alias plist_load {
if ($1 = $null) { return }
if ($exists($1-) = $true) {
set %rm.lastdir $deltok($1-,$numtok($1-,92),92)
if ($ini($1-,[rm_plist_v1]) != 0) {
echo -a rk.mp3 Invalid playlist
return
}
plist_clear
hload rkmp3_plist $1-
rkmp3_plist_refresh
}
else {
echo -a rk.mp3 No such file
return
}
var %num 1
while ($gettok(%rm.socknum,%num,32) != $null) {
updateplist $gettok(%rm.socknum,%num,32)
inc %num
}
}
alias rkmp3_plist_refresh {
var %num = 1
while ($hget(rkmp3_plist,$eval(song $+ %num)) != $null) {
addtoplist %num
inc %num
}
}
on *:dialog:rkmp3_plist:sclick:9:{
:getfile
if ($isdir(%rm.lastdir) != $true) {
set %rm.lastdir $scriptdir
}
var %file = $sfile(%rm.lastdir,Save rk.mp3 playlist $chr(40) $+ .rpl $+ $chr(41),Save)
if (%file != $null) {
if ($exists(%file) = $true) {
if (!$input(Do you want to overwrite the file?,264,rk.mp3 - Are you sure?)) {
goto getfile
}
window -a @rkmp3
dialog -v rkmp3_plist
}
rkmp3_save %file
}
}
alias rkmp3_save {
hsave -o rkmp3_plist $1-
}
on *:dialog:rkmp3_plist:sclick:10:{
plist_clear
}
on *:dialog:rkmp3_plist:sclick:11:{
var %max = 1
while ($hget(rkmp3_plist,$eval(song $+ %max)) != $null) {
inc %max
}
dec %max
var %start = 1
while (%start <= %max) {
var %other = %max
while (%other >= %start) {
if ($gettok($hget(rkmp3_plist,$eval(info $+ %start)),2-,32) > $gettok($hget(rkmp3_plist,$eval(info $+ %other)),2-,32) || %other = %start) {
var %tempsong = $hget(rkmp3_plist,$eval(song $+ %other))
var %tempinfo = $hget(rkmp3_plist,$eval(info $+ %other))
hadd rkmp3_plist song $+ %other $hget(rkmp3_plist,$eval(song $+ %start))
hadd rkmp3_plist info $+ %other $hget(rkmp3_plist,$eval(info $+ %start))
hadd rkmp3_plist song $+ %start %tempsong
hadd rkmp3_plist info $+ %start %tempinfo
break
}
dec %other
}
if (%other <= %start) {
inc %start
}
}
if ($dialog(rkmp3_plist) = rkmp3_plist) {
did -r rkmp3_plist 4
rkmp3_plist_refresh
}
}
on *:dialog:rkmp3_plist:sclick:12:{
if (!$isdir(%rm.lastdir)) {
set %rm.lastdir $scriptdir
}
var %file $sfile($scriptdir,Conver to HTML Playlist $chr(40) $+ .html $+ $chr(41),Convert)
var %num = 1
var %file = $+(",%file,")
write -c %file
write %file <html><head><title>rk.mp3 playlist</title></head><body bgcolor=#000040 text=#FFFFFF link=#999999 alink=#999999 vlink=#999999>
write %file <center><font face=verdana size=+2><font color=#FFB005><b>rk.mp3 plist</b></font></u>
write %file <hr width=300 color=white noshade>
%num = 1
var %length = 0
while ($hget(rkmp3_plist,$eval(song $+ %num)) != $null) {
write %file <font color=#FFB005><b> $+ %num $+ .</font> <i> $+ $gettok($gettok($hget(rkmp3_plist,$eval(info $+ %num)),1,45),2-,32) $+ </i></b> - <font color=#FFB005> $+ $gettok($hget(rkmp3_plist,$eval(info $+ %num)),2-,45) $+ </font> <i>( $+ $duration($calc($gettok($hget(rkmp3_plist,$eval(info $+ %num)),1,32) / 1000)) $+ )</i><br>
%length = $calc(%length + $mp3($hget(rkmp3_plist,$eval(song $+ %num))).length)
inc %num
}
write -il4 %file <font size=-2>There are <font color=#FFB005><i> $+ $calc(%num - 1) $+ </i></font> songs in the playlist, totaling <font color=#FFB005><i> $+ $duration($calc(%length / 1000)) $+ </i></font> of play.</font></center><font face=verdana size=-1><br><ul>
write %file </ul></body></html>
echo -a rk.mp3: Converted playlist to %file
}
on *:filercvd:*.mp3:{
if (%rm.autoadd = $true || %rm.autoadd = $null) {
set %rm.autoadd $true
plist_addmp3 $filename
if (%rm.autoplay = $true) {
var %i = 1
while ($hget(rkmp3_plist,$eval(song $+ %i)) != $null) {
inc %i
}
set %cursong $calc(%i - 1)
rkmp3_stop
rkmp3_play
}
}
}
alias plist_clear {
var %num 1
while ($hget(rkmp3_plist,$eval(song $+ %num)) != $null) {
hdel rkmp3_plist song $+ %num
hdel rkmp3_plist info $+ %num
inc %num
}
did -r rkmp3_plist 4
var %num 1
while ($gettok(%rm.socknum,%num,32) != $null) {
updateplist $gettok(%rm.socknum,%num,32)
inc %num
}
}
;rkmp3_5settings.mrc
alias rkmp3_settings {
if ((%rmset.lastx < 0) || (%rmset.lastx > $window(-1).w) || (%rmset.lastx = $null)) {
set %rmset.lastx 100
}
if ((%rmset.lasty < 0) || (%rmset.lasty > $window(-1).h) || (%rmset.lasty = $null)) {
set %rmset.lasty 50
}
dialog -amd rkmp3_set rkmp3_set
}
dialog rkmp3_set {
title rk.mp3 settings
size %rmset.lastx %rmset.lasty 400 173
tab "Playlist", 1, 0 0 400 158
tab "Announcements", 2
tab "About", 3
;tab 1
box "After song ends", 11, 1 26 120 50, tab 1
check "Play continuously", 111, 5 40 100 15, tab 1
check "Pick random song", 112, 5 58 105 15, tab 1
box "Mp3 Playlist sharing", 12, 1 77 120 70, tab 1
check "Enable sharing", 121, 5 91 90 15, tab 1
check "Auto-add mp3", 122, 5 109 105 15, tab 1
check "Auto-play", 1222, 5 128 90 15, tab 1
box "rk.mp3 Skins",1231, 130 26 111 50, tab 1
button "Load Skin", 123, 140 45 90 20, tab 1 disable
box "On Connect",1111, 250 26 145 50, tab 1
check "Join #rkmp3",1112, 280 47 80 15, tab 1
box "Message Colour", 124, 130 77 265 70, tab 1
icon 130, 202 97 19 17, $scriptdircolour0.bmp, tab 1 noborder
icon 131, 223 97 19 17, $scriptdircolour1.bmp, tab 1 noborder
icon 132, 244 97 19 17, $scriptdircolour2.bmp, tab 1 noborder
icon 133, 265 97 19 17, $scriptdircolour3.bmp, tab 1 noborder
icon 134, 286 97 19 17, $scriptdircolour4.bmp, tab 1 noborder
icon 135, 307 97 19 17, $scriptdircolour5.bmp, tab 1 noborder
icon 136, 328 97 19 17, $scriptdircolour6.bmp, tab 1 noborder
icon 137, 349 97 19 17, $scriptdircolour7.bmp, tab 1 noborder
text "Colour:",126, 136 108 35 15, tab 1
text "",125, 173 108 24 15, tab 1 center
icon 138, 202 116 19 17, $scriptdircolour8.bmp, tab 1 noborder
icon 139, 223 116 19 17, $scriptdircolour9.bmp, tab 1 noborder
icon 1310, 244 116 19 17, $scriptdircolour10.bmp, tab 1 noborder
icon 1311, 265 116 19 17, $scriptdircolour11.bmp, tab 1 noborder
icon 1312, 286 116 19 17, $scriptdircolour12.bmp, tab 1 noborder
icon 1313, 307 116 19 17, $scriptdircolour13.bmp, tab 1 noborder
icon 1314, 328 116 19 17, $scriptdircolour14.bmp, tab 1 noborder
icon 1315, 349 116 19 17, $scriptdircolour15.bmp, tab 1 noborder
icon 1316, 370 97 11 37, $scriptdircolournone.bmp, tab 1 noborder
;tab 2
check "Announce Song On Play",31, 5 26 140 15, tab 2
check "Allow Mp3 Download Trigger",32, 5 44 155 15, tab 2
text "Trigger:",33, 5 62 35 15, tab 2
edit "",34, 45 59 80 20, tab 2
button "All channels but... (separate with ,)",35, 5 85 175 20, tab 2
edit "",36, 30 105 365 20, tab 2
check "Show (Kbps/Khz)",37, 200 26 120 15, tab 2
check "Show Size",38, 200 44 80 15, tab 2
check "Show Mono/Stereo",39, 200 62 130 15, tab 2
;tab 3
text "About rk.mp3",41, 5 26 390 15, tab 3
text "", 42, 5 41 390 105, tab 3
link "http://rkmp3.tunkeymicket.com/", 664, 0 158 163 15
text "- rk.mp3 website", 665, 166 158 90 15
button "OK", 666, 350 158 50 15, ok
}
on *:dialog:rkmp3_set:init:0:{
if (%rm.continuous = $true) {
did -c rkmp3_set 111
}
else {
did -b rkmp3_set 112
}
if (%rm.random = $true) {
did -c rkmp3_set 112
}
did -a rkmp3_set 34 %rm.trigger
did -a rkmp3_set 36 %rm.chanexcept
if (%rm.sharing = $true || %rm.sharing = $null) {
set %rm.sharing $true
did -c rkmp3_set 121
}
else {
did -b rkmp3_set 122
did -b rkmp3_set 1222
}
if (%rm.autoadd = $true || %rm.autoadd = $null) {
set %rm.autoadd $true
did -c rkmp3_set 122
}
else {
did -b rkmp3_set 1222
}
if (%rm.autoplay = $true) {
did -c rkmp3_set 1222
}
if ($group(#rkmp3onjoin).status = on) {
did -c rkmp3_set 1112
}
if (%rm.announce = $true) {
did -c rkmp3_set 31
}
else {
did -b rkmp3_set 35
did -b rkmp3_set 36
}
if (%rm.trigger.allow = $true) {
did -c rkmp3_set 32
}
else {
did -b rkmp3_set 34
}
if (%rm.ann.khzkbps = $true) {
did -c rkmp3_set 37
}
if (%rm.ann.size = $true) {
did -c rkmp3_set 38
}
if (%rm.ann.stereo = $true) {
did -c rkmp3_set 39
}
if (%rm.except = $false) {
did -r rkmp3_set 35
did -a rkmp3_set 35 Only channels... (seperate with ,)
}
if ((%rm.adcolour !isnum || %rm.adcolour < 0 || %rm.adcolour > 15) && %rm.adcolour != none) {
set %rm.adcolour 2
}
did -a rkmp3_set 42 rk.mp3 is a project I (rkzad) have been working on for quite a while now. It went $&
through many different versions... a normal dialog... a dialog with pictures, and then $&
finally (and eventually) this, which I find is much better. I always had limitations with $&
the other ones, but this one (although it's harder to do) is much better. Please tell $&
me what you think and do not rip it off. I'd also like to thank SilentSound, ]2aven, $&
Bulk, Knowledge, Endless, Slyder, minux, snake, freaK, bigguy, and Parsec for $&
helping me test it. If you have any comments, suggestions, complaints, questions $&
or compliments ;) please feel free to e-mail me at rkzad@valveworld.com.
did -a rkmp3_set 125 %rm.adcolour
}
on *:dialog:rkmp3_set:sclick:121:{
if ($did(rkmp3_set,121).state = 1) {
set %rm.sharing $true
did -e rkmp3_set 122
if (%rm.autoadd = $true) {
did -e rkmp3_set 1222
}
socklisten rmlsock 7331
}
else {
set %rm.sharing $false
sockclose rmlsock
while (%rm.socknum != $null) {
unset % [ $+ rm.sock $+ [ $gettok(%rm.socknum,1,32) ] ]
rmclsockclose $gettok(%rm.socknum,1,32)
sockclose rm.sock $+ $gettok(%rm.socknum,1,32)
set %rm.socknum $gettok(%rm.socknum,2-,32)
}
did -b rkmp3_set 122
did -b rkmp3_set 1222
}
}
on *:dialog:rkmp3_set:sclick:122:{
if ($did(rkmp3_set,122).state = 1) {
set %rm.autoadd $true
did -e rkmp3_set 1222
}
else {
set %rm.autoadd $false
did -b rkmp3_set 1222
}
}
on *:dialog:rkmp3_set:sclick:1222:{
if ($did(rkmp3_set,1222).state = 1) {
set %rm.autoplay $true
}
else {
set %rm.autoplay $false
}
}
on *:dialog:rkmp3_set:sclick:123:{
if (!$isdir(%rm.lastdir)) {
set %rm.lastdir $scriptdir
}
var %thefile $sfile(%rm.lastdir,Load Skin $chr(40) $+ .rms $+ $chr(41),Load)
if (%thefile != $null) {
set %rm.skinfile %thefile
rkmp3_exit
rkmp3_open
}
}
on *:dialog:rkmp3_set:sclick:111:{
if ($did(rkmp3_set,111).state = 1) {
set %rm.continuous $true
did -e rkmp3_set 112
}
else {
unset %rm.continuous
did -b rkmp3_set 112
}
}
on *:dialog:rkmp3_set:sclick:112:{
if ($did(rkmp3_set,112).state = 1) {
set %rm.random $true
}
else {
unset %rm.random
}
}
on *:dialog:rkmp3_set:sclick:1112:{
if ($did(rkmp3_set,1112).state = 1) {
.enable #rkmp3onjoin
}
else {
.disable #rkmp3onjoin
}
}
on *:dialog:rkmp3_set:sclick:130: changeadcolour $did
on *:dialog:rkmp3_set:sclick:131: changeadcolour $did
on *:dialog:rkmp3_set:sclick:132: changeadcolour $did
on *:dialog:rkmp3_set:sclick:133: changeadcolour $did
on *:dialog:rkmp3_set:sclick:134: changeadcolour $did
on *:dialog:rkmp3_set:sclick:135: changeadcolour $did
on *:dialog:rkmp3_set:sclick:136: changeadcolour $did
on *:dialog:rkmp3_set:sclick:137: changeadcolour $did
on *:dialog:rkmp3_set:sclick:138: changeadcolour $did
on *:dialog:rkmp3_set:sclick:139: changeadcolour $did
on *:dialog:rkmp3_set:sclick:1310: changeadcolour $did
on *:dialog:rkmp3_set:sclick:1311: changeadcolour $did
on *:dialog:rkmp3_set:sclick:1312: changeadcolour $did
on *:dialog:rkmp3_set:sclick:1313: changeadcolour $did
on *:dialog:rkmp3_set:sclick:1314: changeadcolour $did
on *:dialog:rkmp3_set:sclick:1315: changeadcolour $did
on *:dialog:rkmp3_set:sclick:1316: changeadcolour none
alias -l changeadcolour {
if ($1 != none) {
set %rm.adcolour $right($1,-2)
}
else {
set %rm.adcolour none
}
did -r rkmp3_set 125
did -a rkmp3_set 125 %rm.adcolour
}
on *:dialog:rkmp3_set:sclick:31:{
if ($did(rkmp3_set,31).state = 1) {
set %rm.announce $true
if (%rm.trigger.allow = $true) {
did -e rkmp3_set 34
}
did -e rkmp3_set 35
did -e rkmp3_set 36
}
else {
unset %rm.announce
did -b rkmp3_set 35
did -b rkmp3_set 36
}
}
on *:dialog:rkmp3_set:sclick:32:{
if ($did(rkmp3_set,32).state = 1) {
set %rm.trigger.allow $true
did -e rkmp3_set 34
}
else {
unset %rm.trigger.allow
did -b rkmp3_set 34
}
}
on *:dialog:rkmp3_set:edit:34:{
var %temp = $did(rkmp3_set,34).text
did -r rkmp3_set 34
did -a rkmp3_set 34 $replace(%temp,*,_)
}
on *:dialog:rkmp3_set:sclick:35:{
if (%rm.except = $true) {
set %rm.except $false
did -r rkmp3_set 35
did -a rkmp3_set 35 Only channels... (seperate with ,)
}
else {
set %rm.except $true
did -r rkmp3_set 35
did -a rkmp3_set 35 All channels but... (seperate with ,)
}
}
on *:dialog:rkmp3_set:sclick:37:{
if ($did(rkmp3_set,37).state = 1) {
set %rm.ann.khzkbps $true
}
else {
unset %rm.ann.khzkbps
}
}
on *:dialog:rkmp3_set:sclick:38:{
if ($did(rkmp3_set,38).state = 1) {
set %rm.ann.size $true
}
else {
unset %rm.ann.size
}
}
on *:dialog:rkmp3_set:sclick:39:{
if ($did(rkmp3_set,39).state = 1) {
set %rm.ann.stereo $true
}
else {
unset %rm.ann.stereo
}
}
on *:dialog:rkmp3_set:sclick:664:{
run http://rkmp3.tunkeymicket.com/
}
on *:dialog:rkmp3_set:sclick:666:{
set %rm.trigger $did(rkmp3_set,34).text
set %rm.chanexcept $did(rkmp3_set,36).text
}
;rkmp3_5share.mrc
menu nicklist {
Media Overkill
.rk.mp3
..Open rk.mp3:open_rkmp3
..File Transfers:rkmp3_filetransfer
..-
..View $1 $+ 's Playlist:rkmp3_vplist $$1 $chan
}
alias rkmp3_vplist {
if (%rm.adcolour !isnum || %rm.adcolour < 0 || %rm.adcolour > 15) { set %rm.adcolour 2 }
if ($address($1,0) = $null) {
echo -a $rm.adcolour(rk.mp3:) Could not resolve $1 $+ 's address. Please type /ial on, then reconnect to the server.
return
}
if ($dialog(rkmp3_vplist) = rkmp3_vplist) {
echo -a $rm.adcolour(rk.mp3:) Dialog already open.
return
}
if ($sock(rmsock) = rmsock) {
sockclose rmsock
}
sockopen rmsock $gettok($address($1,0),2,64) 7331
dialog -md rkmp3_vplist rkmp3_vplist
}
dialog rkmp3_vplist {
title rk.mp3 remote playlist viewer
size -1 -1 300 260
text "This is somebody else's playlist for rk.mp3. From here you may request songs from the other user.", 2, 1 1 300 30, center
text "Connecting to user...", 3, 1 30 300 15, center
box "Playlist", 4, 1 50 300 175
list 5, 5 65 290 165, vsbar extsel
icon 6, 100 230 100 25, $scriptdirrequestmp3.bmp, noborder
button "", 1, 0 0 0 0, ok
}
on *:sockopen:rmsock:{
if ($dialog(rkmp3_vplist) = rkmp3_vplist) {
did -r rkmp3_vplist 3
if ($sockerr) {
did -a rkmp3_vplist 3 Could not connect!!
}
else {
did -a rkmp3_vplist 3 Connected to user, sending info...
sockwrite -tn rmsock rkmp3 0 5 16 $me
}
}
else {
if (%rm.adcolour !isnum || %rm.adcolour < 0 || %rm.adcolour > 15) { set %rm.adcolour 2 }
echo -a $rm.adcolour(rk.mp3:) You closed the dialog before I could connect!
sockclose rmsock
}
}
on *:sockread:rmsock:{
if ($sockerr > 0) return
sockread %read
while ($sockbr != 0) {
parsermsock %read
sockread %read
}
}
alias parsermsock {
if ($dialog(rkmp3_vplist) != rkmp3_vplist) {
sockclose rmsock
return
}
did -r rkmp3_vplist 3
if ($1 = close) {
did -a rkmp3_vplist 3 Connection lost: $2-
sockclose rmsock
}
else if ($1 = dnscheck) {
did -a rkmp3_vplist 3 Server attempting DNS...
}
else if ($1 = ok) {
did -a rkmp3_vplist 3 DNS Finished! Requesting playlist...
sockwrite -tn rmsock reqlist
}
else if ($1 = mp3) {
did -a rkmp3_vplist 3 Adding song # $+ $did(rkmp3_vplist,4,0).sel $+ ...
did -a rkmp3_vplist 5 $2-
}
else if ($1 = finlist) {
did -a rkmp3_vplist 3 Updated list.
}
else if ($1 = clear) {
did -r rkmp3_vplist 5
did -a rkmp3_vplist 3 Cleared list, checking for update
sockwrite -tn rmsock reqlist
}
}
on *:dialog:rkmp3_vplist:init:0:{
if ($sock(rmsock) != rmsock) {
dialog -x rkmp3_vplist
}
}
on *:dialog:rkmp3_vplist:dclick:5:{
if ($sock(rmsock) = rmsock) {
sockwrite -tn rmsock req $did(rkmp3_vplist,5,1).sel
}
else {
dialog -x rkmp3_vplist
}
}
on *:dialog:rkmp3_vplist:sclick:6:{
if ($sock(rmsock) = rmsock) {
var %num 1
while (%num <= $did(rkmp3_vplist,5,0).sel) {
sockwrite -tn rmsock req $did(rkmp3_vplist,5,%num).sel
inc %num
}
}
else {
dialog -x rkmp3_vplist
}
}
on *:socklisten:rmlsock:{
var %num 1
while ($istok(%rm.socknum,%num,32) = $true) {
inc %num
}
sockaccept rmclsock $+ %num
set %rm.socknum %num %rm.socknum
.timerrmclsock $+ %num 1 900 timeoutrmclsock %num
}
alias timeoutrmclsock {
if ($sock(rmclsock $+ $1).lr < 900) {
.timerrmclsock $+ $1 1 $calc(900 - $sock(rmclsock $+ $1).lr) timeoutrmclsock $1
}
else if ($sock(rmclsock $+ $1) = rmclsock $+ $1) {
sockwrite -tn rmclsock $+ $1 close Timed out.
rmclsockclose rmclsock $+ $1
}
}
on *:sockread:rmclsock*:{
if ($sockerr > 0) return
sockread %read
while ($sockbr != 0) {
parsermclsock $right($sockname,-8) $address %read
sockread %read
}
}
alias parsermclsock {
if ($3-6 = rkmp3 0 5 16) {
sockwrite -tn rmclsock $+ $1 dnscheck
dns $7
set %rm.clsock $+ $1 $2 $7
}
else if ($gettok(%rm.clsock $+ $1,2,32) != $null) { return }
if ($3 = reqlist) {
var %num 1
while ($hget(rkmp3_plist,$eval(song $+ %num)) != $null) {
var %thesong = $hget(rkmp3_plist,$eval(song $+ %num))
var %theinfo = $hget(rkmp3_plist,$eval(info $+ %num))
var %minutes $int($calc($gettok(%theinfo,1,32) / 60000))
var %seconds $int($calc(($gettok(%theinfo,1,32) - %minutes * 60000) / 1000))
if (%seconds < 10) { var %seconds 0 $+ %seconds }
sockwrite -tn rmclsock $+ $1 mp3 $chr(91) $+ %minutes $+ : $+ %seconds $+ ] $gettok(%theinfo,2-,32)
inc %num
}
sockwrite -tn rmclsock $+ $1 finlist
}
else if ($3 = req) {
dcc send % [ $+ rm.clsock $+ [ $1 ] ] $hget(rkmp3_plist,$eval(song $+ $4))
}
}
on *:sockclose:rmclsock*:{
rmclsockclose $sockname
}
alias rmclsockclose {
set %rm.socknum $deltok(%rm.socknum,$findtok(%rm.socknum,$right($1,-8),1,32),32)
unset %rm.clsock $+ $right($1,-8)
}
on *:dns:{
var %num 1
while (%num <= $numtok(%rm.socknum,32)) {
if ($nick = $gettok(% [ $+ rm.clsock $+ [ %num ] ] ,2,32)) {
if ($iaddress = $gettok(% [ $+ rm.clsock $+ [ %num ] ] ,1,32)) {
set %rm.clsock $+ %num $gettok(% [ $+ rm.clsock $+ [ %num ] ] ,2,32)
sockwrite -tn rmclsock $+ %num ok
}
else {
sockwrite -tn rmclsock $+ %num close Nickname Spoof Attempt!!
rmclsockclose rmclsock $+ %num
}
}
inc %num
}
}
on *:exit:{
if ($sock(rmsock) = rmsock) { sockclose rmsock }
while (%rm.socknum != $null) {
rmclsockclose $gettok(%rm.socknum,1,32)
sockclose rmclsock $+ $gettok(%rm.socknum1,32) Server closed mIRC
set %rm.socknum $gettok(%rm.socknum,2-,32)
}
sockclose rmlsock
}
alias updateplist {
var %temp rmclsock $+ $1
if ($sock(%temp) = %temp) {
sockwrite -tn %temp clear
}
}
;rkmp3_5transfer.mrc
alias rkmp3_filetransfer {
if ($dialog(rkmp3_filetransfer) = rkmp3_filetransfer) {
dialog -x rkmp3_filetransfer rkmp3_filetransfer
}
dialog -amd rkmp3_filetransfer rkmp3_filetransfer
}
dialog rkmp3_filetransfer {
title "rk.mp3 File Transfer Dialog"
size -1 -1 500 164
list 11, 1 1 250 166, extsel vsbar
box "Trasnfer Information", 21, 250 1 250 121
text "Filename:", 22, 255 15 44 15
text "", 23, 304 15 181 15
text "Transfer Type:", 24, 255 30 69 15
text "", 25, 329 30 166 15
text "User:", 26, 255 45 24 15
text "", 27, 284 45 211 15
text "Address:", 28, 255 60 42 15
text "", 29, 302 60 193 15
text "Filesize:", 210, 255 75 38 15
text "", 211, 298 75 78 15
text "Sent:", 212, 255 90 25 15
text "", 213, 285 90 91 15
text "Status:", 214, 255 105 34 15
text "", 215, 294 105 86 15
text "CPS:", 216, 375 75 23 15
text "", 217, 403 75 95 15
text "Time:", 218, 375 90 27 15
text "", 219, 407 90 91 15
button "Clear Selected", 12, 252 124 246 18, ok
button "Close", 13, 252 144 246 18, ok
}
alias timer {
.timer $1-
}
on *:dialog:rkmp3_filetransfer:init:0:{
.timer 1 0 rm.fts_updatetimer $dname
}
alias rm.fts_updatetimer {
if ($dialog($1) = $1 && $1 != $null) {
rm.fts_update
rm.fts_refresh
.timer 1 0 rm.fts_updatetimer $1
}
}
alias fts_did {
if ($1 = -l) {
if ($did(rkmp3_filetransfer,$2,$3) != $4-) {
did -o rkmp3_filetransfer $2-
}
}
else if ($did(rkmp3_filetransfer,$1) != $2-) {
did -o rkmp3_filetransfer $1 1 $2-
}
}
alias rm.fts_update {
if ($dialog(rkmp3_filetransfer) = rkmp3_filetransfer) {
var %num = 1
var %line = 1
while (%num <= $get(0)) {
fts_did -l 11 %line (RECV %num $+ ) $get(%num) $+ : $get(%num).file
inc %num
inc %line
}
var %num = 1
while (%num <= $send(0)) {
fts_did -l 11 %line (SEND %num $+ ) $send(%num) $+ : $send(%num).file
inc %num
inc %line
}
while (%line <= $did(rkmp3_filetransfer,11).lines) {
did -d rkmp3_filetransfer 11 %line
inc %line
}
}
}
alias rm.fts_refresh {
if ($dialog(rkmp3_filetransfer) = rkmp3_filetransfer) {
var %toget = $did(rkmp3_filetransfer,11,1).seltext
if (%toget != $null) {
%toget = $left($right($gettok(%toget,1-2,32),-1),-1)
var %num = $gettok(%toget,2,32)
fts_did 25 $gettok(%toget,1,32)
if ($gettok(%toget,1,32) = RECV) {
fts_did 23 $get(%num).file
fts_did 27 $get(%num)
fts_did 29 $get(%num).ip
fts_did 211 $get(%num).size
fts_did 213 $get(%num).rcvd
if ($get(%num).status = active) {
fts_did 215 (Active) $round($calc($get(%num).rcvd / $get(%num).size * 100),1) $+ %
}
else if ($get(%num).status = inactive) {
fts_did 215 Inactive
}
else if ($get(%num).status = waiting) {
fts_did 215 Waiting...
}
fts_did 217 $get(%num).cps
fts_did 219 $duration($get(%num).secs)
}
else if ($gettok(%toget,1,32) = SEND) {
fts_did 23 $send(%num).file
fts_did 27 $send(%num)
fts_did 29 $send(%num).ip
fts_did 211 $send(%num).size
fts_did 213 $send(%num).sent
if ($send(%num).status = active) {
fts_did 215 (Active) $round($calc($send(%num).sent / $send(%num).size * 100),1) $+ %
}
else if ($send(%num).status = inactive) {
fts_did 215 Inactive
}
else if ($send(%num).status = waiting) {
fts_did 215 Waiting...
}
fts_did 217 $send(%num).cps
fts_did 219 $duration($send(%num).secs)
}
}
else {
did -r rkmp3_filetransfer 23
did -r rkmp3_filetransfer 25
did -r rkmp3_filetransfer 27
did -r rkmp3_filetransfer 29
did -r rkmp3_filetransfer 211
did -r rkmp3_filetransfer 213
did -r rkmp3_filetransfer 215
did -r rkmp3_filetransfer 217
did -r rkmp3_filetransfer 219
}
}
}
on *:dialog:rkmp3_filetransfer:sclick:12:{
var %send, %num = 1, %sel
while (%num <= $did(rkmp3_filetransfer,11,0).sel) {
%sel = %sel $did(rkmp3_filetransfer,11,%num).sel
if (%send = $null && $chr(40) $+ SEND * iswm $did(rkmp3_filetransfer,11,%num).seltext) {
%send = %num
}
inc %num
}
if (%send = $null) { %send = 0 }
while (%sel != $null) {
if ($gettok(%sel,1,32) >= %send) {
var %danum = 1, %num = 1
while (%num < $calc($gettok(%sel,1,32) - %send + 1)) {
if ($send(%num) = $send($calc($gettok(%sel,1,32) - %send + 1))) {
inc %danum
}
inc %num
}
close -s $+ %danum $send($calc($gettok(%sel,1,32) - %send + 1))
}
else {
var %danum = 1, %num = 1
while (%num < $gettok(%sel,1,32)) {
if ($get(%num) = $get($gettok(%sel,1,32))) {
inc %danum
}
inc %num
}
close -g $+ %danum $get($gettok(%sel,1,32))
dec %send
}
rm.fts_update
%sel = $gettok(%sel,2-,32)
var %num = 1
while (%num <= $numtok(%sel,32)) {
%sel = $puttok(%sel,$calc($gettok(%sel,%num,32) - 1),%num,32)
inc %num
}
}
rm.fts_refresh
}