mp3.mrc — File Browser
mp3.mrcv3.01 / mp3.mrcv3.01 / mp3.mrc
mp3.mrc — 20.44 KB — Download this file
; script ( mp3.mrc )
; version ( 3.01a )
; author ( erawtic )
; release ( 10/27/98 )
; file ( main routines )
; When you start mIRC
on *:start:{ unset %m %m.1 %m.2 %m.3 %m.4 %mp3* }
; When you load the addon
on *:load:{
if ($version < 5.4) {
mp3.echo *** You must have mIRC v5.4 or higher to use this addon
.unload -rs $script
return
}
mp3.echo *** Loading script file (2 of 2)
.load -rs $scriptdirmp3a.mrc
write -c $scriptdirmp3.ini
if ($findfile($left($mircdir,3),*.mp3,0) > 0) mp3.w dir $nofile($findfile($left($mircdir,3),*.mp3,1))
if ($findfile($left($mircdir,3),Winamp.exe,0) > 0) mp3.w player $findfile($left($mircdir,3),Winamp.exe,1)
mp3.w show yes
mp3.w steal no
mp3.w request no
mp3.w repeat no
mp3.w shuffle yes
if ($mp3.s(dir)) mp3.w prevdir $mp3.s(dir) $+ *.mp3
if ($mp3.s(dir)) mp3.w last $findfile($mp3.s(dir),*.mp3,1)
mp3.setup
}
; Echo's important stuff (yeah, right.)
alias mp3.echo {
if ($left($active,1) == @) echo $colour(info) -si4 $1-
else { echo $colour(info) -ai4 $1- }
}
; Finds an MP3 in the Playlist.
alias mp3.f {
if (($window(@MP3聽Playlist) == $null) || ($1 == $null)) return
set %m 0
:loop
inc %m
if (%m > $line(@MP3聽Playlist,0,1)) return
if ($line(@MP3聽Playlist,%m,1) == $1-) return %m
goto loop
}
; Turns length of an MP3 into seconds.
alias mp3.t { return $calc(($gettok($1,1,109) * 60) + $remove($gettok($1,2,109),s)) }
; Checks ID3 tags for wierd characters.
alias mp3.c { if (($chr(7) isin $1-) || ($chr(8) isin $1-) || ($chr(9) isin $1-) || ($chr(10) isin $1-) || ($chr(255) isin $1-)) return $!true | return $!false }
; Reads settings from INI file.
alias mp3.s { if ($1) return $readini -n $scriptdirmp3.ini settings $1 }
; Writes settings to INI file.
alias mp3.w { if ($2) writeini $scriptdirmp3.ini settings $1 $2- }
; Returns a random MP3.
alias mp3.r { return $findfile($mp3.s(dir),*.mp3,$r(1,$findfile($mp3.s(dir),*.mp3,0))) }
; Checks to see if an MP3 contains ID3 tags.
alias mp3.tagged {
if ($exists($1-) == $false) return
unset %mp3.tagged
set %m 0
:loop
inc %m
if (%m > 3) goto end
bread $shortfn($1-) $calc($lof($1-) - (129 - %m)) 1 &bvar
set %mp3.tagged %mp3.tagged $+ $chr($bvar(&bvar,1))
goto loop
:end
.timer 1 1 unset %mp3.tagged %m
if (%mp3.tagged == TAG) return $!true
return $!false
}
; Returns the song name of an MP3 (if its tagged).
alias mp3.song {
if ($mp3.tagged($1-) == $false) return
unset %mp3.song
set %m.1 0
:loop
inc %m.1
if (%m.1 > 30) goto end
bread $shortfn($1-) $calc($lof($1-) - (126 - %m.1)) 1 &bvar
set %mp3.song %mp3.song $+ $iif($chr($bvar(&bvar,1)) == $chr(32),^,$chr($bvar(&bvar,1)))
goto loop
:end
.timer 1 1 unset %mp3.song %m.1
return $iif($mp3.c(%mp3.song),$!false,$replace(%mp3.song,^,$chr(32),$chr(160),$chr(32),$chr(255),$chr(32)))
}
; Returns the artist name of an MP3 (if its tagged).
alias mp3.artist {
if ($mp3.tagged($1-) == $false) return
unset %mp3.artist
set %m.2 0
:loop
inc %m.2
if (%m.2 > 30) goto end
bread $shortfn($1-) $calc($lof($1-) - (96 - %m.2)) 1 &bvar
set %mp3.artist %mp3.artist $+ $iif($chr($bvar(&bvar,1)) == $chr(32),^,$chr($bvar(&bvar,1)))
goto loop
:end
.timer 1 1 unset %mp3.artist %m.2
return $iif($mp3.c(%mp3.artist),$!false,$replace(%mp3.artist,^,$chr(32),$chr(160),$chr(32),$chr(255),$chr(32)))
}
; Returns the album of an MP3 (if its tagged).
alias mp3.album {
if ($mp3.tagged($1-) == $false) return
unset %mp3.album
set %m.3 0
:loop
inc %m.3
if (%m.3 > 30) goto end
bread $shortfn($1-) $calc($lof($1-) - (66 - %m.3)) 1 &bvar
set %mp3.album %mp3.album $+ $iif($chr($bvar(&bvar,1)) == $chr(32),^,$chr($bvar(&bvar,1)))
goto loop
:end
.timer 1 1 unset %mp3.album %m.3
return $iif($mp3.c(%mp3.album),$!false,$replace(%mp3.album,^,$chr(32),$chr(160),$chr(32),$chr(255),$chr(32)))
}
; Returns the year of the album of an MP3 (if its tagged).
alias mp3.year {
if ($mp3.tagged($1-) == $false) return
unset %mp3.year
set %m.4 0
:loop
inc %m.4
if (%m.4 > 4) goto end
bread $shortfn($1-) $calc($lof($1-) - (36 - %m.4)) 1 &bvar
set %mp3.year %mp3.year $+ $iif($chr($bvar(&bvar,1)) == $chr(32),^,$chr($bvar(&bvar,1)))
goto loop
:end
.timer 1 1 unset %mp3.year %m.4
return $iif($mp3.c(%mp3.year),$!false,$replace(%mp3.year,^,$chr(32),$chr(160),$chr(32),$chr(255),$chr(32)))
}
; Finds the bitrate of an MP3.
alias mp3.bitrate {
if (($1 == $null) || ($exists($1-) == $false)) return 0
set %mp3.bitrate $read -l1 $1-
if ($pos(%mp3.bitrate,RIFF,1)) return 128000
set %mp3.bitrate $asc($mid(%mp3.bitrate,3,1))
.timer 1 1 unset %mp3.bitrate
if (%mp3.bitrate == $null) return 128000
return $mp3.getbr($int($calc(%mp3.bitrate / 16)))
}
alias mp3.getbr {
goto $iif($1 isnum 1-14,$1,0)
:0 | return 112000
:1 | return 32000
:2 | return 40000
:3 | return 48000
:4 | return 56000
:5 | return 64000
:6 | return 80000
:7 | return 92000
:8 | return 112000
:9 | return 128000
:10 | return 160000
:11 | return 192000
:12 | return 224000
:13 | return 256000
:14 | return 320000
}
alias mp3.br { return $remove($mp3.bitrate($1-),000) $+ kbps }
; Finds the length of an MP3.
alias mp3.len {
if (($1 == $null) || ($exists($1-) == $false)) return 0m0s
else { return $mp3.dur($round($calc(($lof($1-) * .008) / $remove($mp3.bitrate($1-),000)),0))) }
}
; Finds the size of an MP3 in MB format.
alias mp3.size { if ($exists($1-)) return $round($calc($lof($1-) / 1048576),2) $+ mb }
alias mp3.size2 { if ($1 isnum) return $round($calc($1 / 1048576),2) $+ mb }
; Just shortens $duration().
alias mp3.dur { return $remove($replace($duration($1),secs,s,mins,m,hrs,h,days,d,wks,w,sec,s,min,m,hr,h,day,d,wk,w),$chr(32)) }
alias mp3.longdur {
set %mp3.longdur $replace($1,s,sec聽,m,min聽,h,hr聽,d,day聽,w,wk聽)
.timer 1 1 unset %mp3.longdur
return $replace(%mp3.longdur,$chr(160),$chr(32))
}
; Just shows how to use /mp3.
alias mp3.usage {
mp3.echo *** /mp3: Invalid parameters. Correct usage:
mp3.echo /mp3 <spec|rand|last|stop|list|text|player|setup> [string]
}
; Opens MP3 setup.
alias mp3.setup {
set %mp3.win @MP3聽Setup
window -c %mp3.win
window -hpdf +fn %mp3.win $calc(($window(-1).w / 2) - 200) $calc(($window(-1).h / 2) - 64) 400 128 %mp3.win
drawfill -r %mp3.win $rgb(face) 15 0 0
drawbutton %mp3.win 1 280 58 110 25
drawbutton %mp3.win 1 280 93 110 25
drawtext -rc %mp3.win $rgb(text) "MS Sans Serif" 15 10 10 999 999 Directory to MP3's:
drawtextbox %mp3.win 105 5 290 20
if ($mp3.s(dir)) drawtext -cr %mp3.win $rgb(text) "MS Sans Serif" 15 110 8 999 999 $mp3.s(dir)
drawtext -rc %mp3.win $rgb(text) "MS Sans Serif" 15 10 30 999 999 Path to Player:
drawtextbox %mp3.win 105 25 290 20
if ($mp3.s(player)) drawtext -cr %mp3.win $rgb(text) "MS Sans Serif" 15 110 28 999 999 $mp3.s(player)
drawcheckbox %mp3.win 10 65 Show MP3's when played
if ($mp3.s(show) == yes) {
drawtext -cr %mp3.win $rgb(text) "Terminal" 12 11 65 999 999 没
set %mp3.checked.1 1
}
drawcheckbox %mp3.win 10 85 Allow users to "steal" MP3's
if ($mp3.s(steal) == yes) {
drawtext -cr %mp3.win $rgb(text) "Terminal" 12 11 85 999 999 没
set %mp3.checked.2 1
}
drawcheckbox %mp3.win 10 105 If exists, play MP3 on request
if ($mp3.s(request) == yes) {
drawtext -cr %mp3.win $rgb(text) "Terminal" 12 11 105 999 999 没
set %mp3.checked.3 1
}
drawtext -orc %mp3.win $rgb(text) "MS Sans Serif" 18 325 63 999 999 OK
drawtext -orc %mp3.win $rgb(text) "MS Sans Serif" 18 312 98 999 999 Cancel
}
; Opens GUI MP3 Player.
alias mp3.gui {
set %mp3.win @MP3聽Player
window -c %mp3.win
window -hpdf +fn %mp3.win $calc(($window(-1).w / 2) - 200) $calc(($window(-1).h / 2) - 92) 400 185 %mp3.win
drawfill -r %mp3.win $rgb(face) 15 0 0
drawbutton %mp3.win 1 10 10 90 25
drawbutton %mp3.win 1 10 45 90 25
drawbutton %mp3.win 1 10 80 90 25
drawbutton %mp3.win 1 10 115 90 25
drawbutton %mp3.win 1 10 150 90 25
drawdialog %mp3.win 1 115 10 275 145
drawcheckbox %mp3.win 185 165 Repeat
if ($mp3.s(repeat) == yes) drawtext -cr $active $rgb(text) "Terminal" 12 186 165 999 999 没
drawcheckbox %mp3.win 270 165 Shuffle
if ($mp3.s(shuffle) == yes) drawtext -cr $active $rgb(text) "Terminal" 12 271 165 999 999 没
drawtext -orc %mp3.win $rgb(text) "MS Sans Serif" 18 39 15 999 999 Play
drawtext -orc %mp3.win $rgb(text) "MS Sans Serif" 18 39 50 999 999 Stop
drawtext -orc %mp3.win $rgb(text) "MS Sans Serif" 18 27 85 999 999 Random
drawtext -orc %mp3.win $rgb(text) "MS Sans Serif" 18 40 120 999 999 Last
drawtext -orc %mp3.win $rgb(text) "MS Sans Serif" 18 41 155 999 999 Exit
if ($timer(mp3player).com == mp3.next) mp3.player $mp3.s(last)
}
; Opens GUI MP3 Playlist.
alias mp3.playlist {
set %mp3.win @MP3聽Playlist
window -c %mp3.win
window -hpdfSl45 +fn %mp3.win $calc(($window(-1).w / 2) - 287) $calc(($window(-1).h / 2) - 90) 150 185 %mp3.win "MS Sans Serif" 15
drawfill -r %mp3.win $rgb(face) 15 0 0
drawbutton %mp3.win 1 10 10 127 25
drawbutton %mp3.win 1 10 45 127 25
drawbutton %mp3.win 1 10 80 127 25
drawbutton %mp3.win 1 10 115 127 25
drawbutton %mp3.win 1 10 150 127 25
drawtext -orc %mp3.win $rgb(text) "MS Sans Serif" 18 57 15 999 999 Play
drawtext -orc %mp3.win $rgb(text) "MS Sans Serif" 18 57 50 999 999 Stop
drawtext -orc %mp3.win $rgb(text) "MS Sans Serif" 18 44 85 999 999 Random
drawtext -orc %mp3.win $rgb(text) "MS Sans Serif" 18 47 120 999 999 Refresh
drawtext -orc %mp3.win $rgb(text) "MS Sans Serif" 18 53 155 999 999 Close
mp3.list
}
alias mp3.list {
if ($window(@MP3聽Playlist) == $null) return
.remove $scriptdirmp3.flt
write -c $scriptdirmp3.bat @ECHO OFF
write -n $scriptdirmp3.bat $left(%tog.mp3d,2)
write -n $scriptdirmp3.bat DIR/A-D/S " $+ $mp3.s(dir) $+ " > " $+ $scriptdirmp3a.flt $+ "
write -n $scriptdirmp3.bat REN " $+ $scriptdirmp3a.flt $+ " mp3.flt
write -n $scriptdirmp3.bat EXIT
run -n $scriptdirmp3.bat
.timermp3list -om 200 50 mp3.list.show
set %mp3.list.count 1
}
alias mp3.list.show {
if ($window(@MP3聽Playlist) == $null) return
if ($exists($scriptdirmp3.flt) == $false) { inc %mp3.list.count | if (%mp3.list.count isnum 0-200) halt }
window -slh @making.a.list.dont.close
clear -l @making.a.list.dont.close
clear -l @MP3聽Playlist
filter -fw $scriptdirmp3.flt @making.a.list.dont.close *.mp3
set %mp3.list.inc 0
:loop
if (%mp3.list.inc < $line(@making.a.list.dont.close,0)) {
inc %mp3.list.inc
aline -l @MP3聽Playlist $gettok($line(@making.a.list.dont.close,%mp3.list.inc),6-,32)
goto loop
}
window -c @making.a.list.dont.close
.timermp3list off
.remove $scriptdirmp3.flt
.remove $scriptdirmp3.bat
sline -l @MP3聽Playlist 1
}
; Makes a list of your MP3's in a text file.
alias mp3.makelist {
set %mp3.list.ticks $ticks
write -c $scriptdir $+ $me-list.txt
.remove $scriptdirmp3.flt
write -c $scriptdirmp3.bat @ECHO OFF
write -n $scriptdirmp3.bat DIR/A-D/S " $+ $mp3.s(dir) $+ " > " $+ $scriptdirmp3a.flt $+ "
write -n $scriptdirmp3.bat REN " $+ $scriptdirmp3a.flt $+ " mp3.flt
write -n $scriptdirmp3.bat EXIT
run -n $scriptdirmp3.bat
.timermp3list -om 200 50 mp3.list.write
set %mp3.list.count 1
}
alias mp3.list.write {
if ($exists($scriptdirmp3.flt) == $false) { inc %mp3.list.count | if (%listmp3.count < 201) return }
.timermp3list off
window -hl @making.a.list.dont.close
window -slh @dont.close.this.one.either
clear -l @making.a.list.dont.close
clear @dont.close.this.one.either
filter -fw $scriptdirmp3.flt @making.a.list.dont.close *.mp3
set %mp3.list.tsize 0
set %mp3.list.inc 0
:loop
inc %mp3.list.inc
if (%mp3.list.inc > $line(@making.a.list.dont.close,0)) goto next
aline @dont.close.this.one.either $gettok($line(@making.a.list.dont.close,%mp3.list.inc),6-,32) $str($calc(70 - $len($gettok($line(@making.a.list.dont.close,%mp3.list.inc),6-,32))),聽) $+ $mp3.size2($remove($gettok($line(@making.a.list.dont.close,%mp3.list.inc),3,32),$chr(44)))
set %mp3.list.tsize $calc(%mp3.list.tsize + $remove($gettok($line(@making.a.list.dont.close,%mp3.list.inc),3,32),$chr(44)))
goto loop
:next
set %mp3.file $scriptdir $+ $me-list.txt
savebuf @dont.close.this.one.either %mp3.file
window -c @making.a.list.dont.close
window -c @dont.close.this.one.either
write -il1 %mp3.file , $+ $str(75,-) $+ ,
set %mp3.temp $me's MP3 list as of $adate
write -il2 %mp3.file $chr(124) %mp3.temp $+ $str($calc(73 - $len(%mp3.temp)),聽) $chr(124)
set %mp3.temp Total MP3's to date: $findfile($mp3.s(dir),*.mp3,0)
write -il3 %mp3.file $chr(124) %mp3.temp $+ $str($calc(73 - $len(%mp3.temp)),聽) $chr(124)
set %mp3.temp Size of all MP3's: $mp3.size2(%mp3.list.tsize)
write -il4 %mp3.file $chr(124) %mp3.temp $+ $str($calc(73 - $len(%mp3.temp)),聽) $chr(124)
write -il5 %mp3.file $chr(124) $str(73,聽) $chr(124)
write -il6 %mp3.file $chr(124) Filename $+ $str(61,聽) $+ Size $chr(124)
write -il7 %mp3.file ' $+ $str(75,-) $+ '
write -n %mp3.file $str(77,-)
write -n %mp3.file MP3 list made by: mp3.mrc/3.0 by erawtic
write -n %mp3.file URL: dimensional.org/~erawtic/mp3.html
.timermp3list off
.remove $scriptdirmp3.bat
.remove $scriptdirmp3.flt
mp3.echo *** MP3 list ( $+ %mp3.file $+ ) made in $round($calc(($ticks - %mp3.list.ticks) / 1000),3) second(s)
unset %mp3.list.*
}
; Shows played MP3 in the GUI MP3 Player.
alias mp3.player {
if (($window(@MP3聽Player) == $null) || ($1 == $null)) return
set %mp3.win @MP3聽Player
mp3.clear
drawtext -rc %mp3.win $rgb(0,0,200) "MS Sans Serif" 15 120 20 265 999 $nopath($1-)
drawtext -rc %mp3.win $rgb(text) "MS Sans Serif" 15 120 45 265 999 $iif($mp3.tagged($1-) && $mp3.artist($1-),$mp3.artist($1-),-)
drawtext -rc %mp3.win $rgb(text) "MS Sans Serif" 15 120 60 265 999 $iif($mp3.tagged($1-) && $mp3.song($1-),$mp3.song($1-),-)
drawtext -rc %mp3.win $rgb(text) "MS Sans Serif" 15 120 75 265 999 $iif($mp3.tagged($1-) && $mp3.album($1-),$mp3.album($1-),-)
drawtext -rc %mp3.win $rgb(text) "MS Sans Serif" 15 120 90 265 999 $iif($mp3.tagged($1-) && $mp3.year($1-),$mp3.year($1-),-)
drawtext -rc %mp3.win $rgb(text) "MS Sans Serif" 15 120 115 265 999 $mp3.longdur($mp3.len($1-))
drawtext -rc %mp3.win $rgb(text) "MS Sans Serif" 15 120 130 265 999 $mp3.br($1-)
}
; Stops an MP3
alias mp3.stop { if ($mp3.s(player)) run -n $mp3.s(player) Stopped }
; Shows an MP3 to the active window if its on.
alias mp3.show {
if (($1 == $null) || ($exists($1-) == $false)) return
if (($left($active,1) == @) || ($replace($active,$chr(32),!) == Status!Window)) set %mp3.com echo -si4
else { set %mp3.com say }
if ($mp3.tagged($1-)) {
if (($mp3.song($1-)) && ($mp3.artist($1-))) set %mp3.show $mp3.artist($1-) - $mp3.song($1-)
else { goto next }
if (($mp3.album($1-)) && ($mp3.year($1-))) set %mp3.show %mp3.show ( $+ $mp3.album($1-) - $mp3.year($1-) $+ )
}
else {
:next
set %mp3.show $nopath($1-)
}
set %mp3.show mp3, %mp3.show .. $+ $mp3.len($1-) $+ @ $+ $mp3.br($1-) [ $+ $mp3.size($1-) $+ ]
.timer 1 1 unset %mp3.com %mp3.show
%mp3.com %mp3.show
}
; Clears MP3 Player when you play another song.
alias mp3.clear { if ($window(@MP3聽Player)) drawrect -rf @MP3聽Player $rgb(face) 1 117 12 270 140 }
; For shuffle or repeat, opens another song.
alias mp3.next {
if ($window(@MP3聽Player) == $null) return
if ($mp3.s(repeat) == yes) set %mp3.play $mp3.s(last)
elseif ($mp3.s(shuffle) == yes) set %mp3.play $mp3.r
run -n $mp3.s(player) " $+ %mp3.play $+ "
mp3.player %mp3.play
mp3.w last %mp3.play
.timermp3player 1 $mp3.t($mp3.len(%mp3.play)) mp3.next
}
; /mp3 alias (main routine)
; /mp3 <spec|rand|last|stop|list|text|player|setup> [string]
alias mp3 {
if ($1 == $null) mp3.usage
elseif ($1 == setup) mp3.setup
elseif ($left($1,4) == spec) {
if ($2) {
set %mp3.find $iif( * isin $2-,$replace($2-,$chr(32),*), [ [ * ] $+ [ $replace($2-,$chr(32),*) ] $+ [ * ] ] )
if ($findfile($mp3.s(dir),%mp3.find,1) == 0) mp3.echo *** No files found matching %mp3.find
else {
set %mp3.play $findfile($mp3.s(dir),%mp3.find,1)
.timermp3player off
run -n $mp3.s(player) " $+ %mp3.play $+ "
if ($mp3.s(show) == yes) mp3.show %mp3.play
if ($window(@MP3聽Player)) mp3.player %mp3.play
mp3.w last %mp3.play
unset %mp3.find %mp3.play
}
}
else {
set %mp3.play $$dir="Select MP3 to play" $mp3.s(prevdir)
.timermp3player off
run -n $mp3.s(player) " $+ %mp3.play $+ "
if ($mp3.s(show) == yes) mp3.show %mp3.play
if ($window(@MP3聽Player)) mp3.player %mp3.play
mp3.w last %mp3.play
mp3.w prevdir $nofile(%mp3.play) $+ *.mp3
unset %mp3.play
}
}
elseif ($left($1,3) == ran) {
.timermp3player off
set %mp3.play $mp3.r
run -n $mp3.s(player) " $+ %mp3.play $+ "
if ($mp3.s(show) == yes) mp3.show %mp3.play
if ($window(@MP3聽Player)) mp3.player %mp3.play
mp3.w last %mp3.play
unset %mp3.play
}
elseif ($left($1,4) == last) {
if ($exists($mp3.s(last)) == $false) mp3.echo *** Error playing last file (doesn't exist)
else {
.timermp3player off
run -n $mp3.s(player) " $+ $mp3.s(last) $+ "
if ($mp3.s(show) == yes) mp3.show $mp3.s(last)
if ($window(@MP3聽Player)) mp3.player %mp3.play
}
}
elseif ($left($1,4) == stop) mp3.stop
elseif (($left($1,4) == play) || ($left($1,3) == gui)) mp3.gui
elseif (($left($1,4) == list) || ($left($1,4) == show)) mp3.playlist
elseif (($left($1,4) == make) || ($left($1,3) == txt) || ($left($1,4) == text)) mp3.makelist
elseif ($left($1,4) == help) mp3.help
else { mp3.usage }
}
; GUI stuff for making things easier (yes, i'm lazy).
; You can use this crap if you want.
;/drawbutton @win <thick> <x y w h>
alias drawbutton {
drawrect -r $1 $rgb(face) $2 $calc($3 + 1) $calc($4 + 1) $5-6
drawrect -r $1 $rgb(shadow) $2-4 $calc($5 - 1) $calc($6 - 1)
drawrect -r $1 $rgb(hilight) $2 $3-6
drawline $1 1 $2 $calc($3 + $2) $calc($4 + $6) $calc($3 + $5) $calc($4 + $6)
drawline $1 1 $2 $calc($3 + $5) $calc($4 + $6) $calc($3 + $5) $calc($4 + $iif($2 == 1,0,$2))
}
;/drawbuttondown @win <thick> <x y w h>
alias drawbuttondown {
drawrect -r $1 $rgb(hilight) $2-4 $5 $6
drawrect -r $1 $rgb(face) $2-4 $calc($5 - 1) $calc($6 - 1)
drawline $1 1 $2 $3 $4 $3 $calc($4 + $6) $3 $4 $calc($3 + $5) $4
drawline -r $1 $rgb(shadow) $2 $calc($3 + $2) $calc($4 + $2) $calc($3 + $2) $calc(($4 + $6) - $2) $calc($3 + $2) $calc($4 + $2) $calc(($3 + $5) - $2) $calc($4 + $2)
}
;/drawtextbox @win <x y w h>
alias drawtextbox {
drawrect -f $1 0 1 $2-5
drawline $1 1 1 $2 $3 $2 $calc($3 + $5) $2 $3 $calc($2 + $4) $3
drawline -r $1 $rgb(face) 1 $2 $calc(($5 + $3) - 1) $calc(($4 + $2) - 1) $calc(($5 + $3) - 1) $calc(($4 + $2) - 1) $calc($3 + 1) $calc(($4 + $2) - 1) $calc(($5 + $3) - 1)
}
;/drawdialog @win <thick> <x y w h>
alias drawdialog {
drawrect -r $1 $rgb(hilight) $2-6
drawrect -r $1 $rgb(shadow) $2 $calc($3 - $2) $calc($4 - $2) $5 $6
}
;/drawcheckbox @win <x y> [text]
alias drawcheckbox {
drawrect -f $1 0 1 $2 $3 10 10
drawline $1 1 1 $2 $3 $2 $calc($3 + 10) $2 $3 $calc($2 + 10) $3
drawline -r $1 $rgb(face) 1 $2 $calc((10 + $3) - 1) $calc((10 + $2) - 1) $calc((10 + $3) - 1) $calc((10 + $2) - 1) $calc($3 + 1) $calc((10 + $2) - 1) $calc((10 + $3) - 1)
if ($4) drawtext -cr $1 $rgb(text) "MS Sans Serif" 15 $calc($2 + 15) $calc($3 - 1) 999 999 $strip($4-)
}
; When someone attempts to get an MP3 from you (if on).
on *:TEXT:*:#:{
if ($mp3.s(steal) == no) return
set %mp3.temp ! $+ $me
if ((($1 == $left($me,$len($1))) || ($1 == %mp3.temp)) && (*mp3 iswm $2-) && ($findfile($mp3.s(dir),$2-,0) > 0)))) {
dcc send $nick $findfile($mp3.s(dir),$2-,1)
.notice $nick Sending $findfile($mp3.s(dir),$2-,1) ( $+ $mp3.size($findfile($mp3.s(dir),$2-,1)) $+ ) as requested. Enjoy.
}
}
; When someone plays an MP3 you have and request is on,
; it will play (if on).
ctcp *:*:*:{
if ($mp3.s(request) == no) return
if ((($1 == SOUND) || ($1 == MP3)) && ($findfile($mp3.s(dir),$2-,0) > 0)) {
run -n $mp3.s(player) " $+ $findfile($mp3.s(dir),$2-,1) $+ "
mp3.w last $findfile($mp3.s(dir),$2-,0)
if ($window(@MP3聽Player)) mp3.player $findfile($mp3.s(dir),$2-,0)
}
}
;e0f!$@