rendered paste body;;;MP3 Player
menu channel,status {
$iif(!$dialog(mp3player),Mp3Player):dialog -md mp3player mp3player
}
dialog mp3player {
title "mp3player"
size -1 -1 142 112
option dbu
button "Play", 1, 2 96 25 12
button "Stop", 2, 30 96 25 12
button "Pause", 3, 58 96 25 12
button "< Prev", 4, 86 96 25 12
button "Next >", 5, 114 96 25 12
list 30, 2 30 136 58, size
box "Playlist:", 7, 0 22 140 70
box "Play Time", 10, 100 2 40 20
text "00:00", 11, 102 12 15 8, nowrap right
text "/", 12, 118 12 3 8
text "00:00", 13, 122 12 15 8, nowrap right
box "Status", 18, 0 2 98 20
text "No Song Is Playing", 6, 2 10 93 10, nowrap
menu "Files", 20
item "Add File", 21, 20
item "Add Dir", 22, 20
item "Remove Selected File", 28 20
item "Options", 27, 20
menu "Playlists", 23
item "Save Playlist", 24, 23
item "Load Playlist", 25, 23
item "Clear Current Playlist", 26, 23
}
on *:dialog:mp3player:init:0: {
if ( $readini($($+(",$scriptdir,mp3player.ini,")), options, saveplaylist) == 1 ) {
var %x 1
.did -r mp3player 30
while ( %x <= $lines($($+(",$scriptdir,mp3playlist.play,"))) ) {
.did -a mp3player 30 $nopath($read($($+(",$scriptdir,mp3playlist.play,")),%x))
inc %x
}
}
if ( $readini($($+(",$scriptdir,mp3player.ini,")), options, startplaying) == 1 ) {
mp3play
}
}
on *:dialog:mp3player:close:0: {
.splay stop
.unset %mp3.*
.timermp3time off
if ( $readini($($+(",$scriptdir,mp3player.ini,")), options, saveplaylist) == 1 ) {
halt
}
elseif ( $exists($($+(",$scriptdir,mp3playlist.play,"))) ) {
.remove $($+(",$scriptdir,mp3playlist.play,"))
}
}
on *:dialog:mp3player:menu:21: {
var %file $sfile($mircdir*.mp3,Add File To Playlist, Add)
if ( $right(%file,3) != mp3 ) {
.did -ra mp3player 6 Error you can only add mp3s
.timermp3status 1 3 /did -ra mp3player 6 No Song Is Playing
}
else {
.did -a mp3player 30 $nopath(%file)
.write $($+(",$scriptdir,mp3playlist.play,")) %file
}
}
on *:dialog:mp3player:menu:22: {
var %dir $sdir($mircdir,Add Dir To Playlist)
var %x 1
while ( $findfile(%dir,*.mp3,%x) != $null ) {
.did -a mp3player 30 $nopath($findfile(%dir,*.mp3,%x))
.write $($+(",$scriptdir,mp3playlist.play,")) $findfile(%dir,*.mp3,%x)
inc %x
}
}
on *:dialog:mp3player:menu:24: {
var %tempsave $sfile($mircdir*.play,Save Playlist, Save)
if ( %tempsave == $null ) { halt }
if ( $right(%tempsave,5) != .play ) {
.set %save $($+(",%tempsave,.play,"))
}
else {
.set %save $($+(",%tempsave,"))
}
if ( %save != $null ) && ( $isfile($($+(",$scriptdir,mp3playlist.play,"))) ) {
.copy -o $($+(",$scriptdir,mp3playlist.play,")) %save
}
elseif ( %save != $null ) && ( !$isfile($($+(",$scriptdir,mp3playlist.play,"))) ) {
.did -ra mp3player 6 Empty Playlists cannot be saved.
.timermp3status 1 3 /did -ra mp3player 6 No Song Is Playing
}
.unset %save
}
on *:dialog:mp3player:menu:25: {
var %mp3.playlist $($+(",$sfile($mircdir*.play,Open Playlist, Open),"))
if ( %mp3.playlist == $null ) { halt }
if ( $readini($($+(",$scriptdir,mp3player.ini,")), options, appendplaylist) != 1 ) {
if ( %mp3.playlist != $null ) && ( $isfile(%mp3.playlist) ) {
.copy -o %mp3.playlist $($+(",$scriptdir,mp3playlist.play,"))
var %x 1
.did -r mp3player 30
while ( %x <= $lines($($+(",$scriptdir,mp3playlist.play,"))) ) {
.did -a mp3player 30 $nopath($read($($+(",$scriptdir,mp3playlist.play,")),%x))
inc %x
}
}
elseif ( %mp3.playlist != $null ) && ( !$isfile(%mp3.playlist) ) {
.did -ra mp3player 6 File Not Found
.timermp3status 1 3 /did -ra mp3player 6 No Song Is Playing
}
}
else {
if ( %mp3.playlist != $null ) && ( $isfile(%mp3.playlist) ) {
.copy -a %mp3.playlist $($+(",$scriptdir,mp3playlist.play,"))
var %x 1
did -r mp3player 30
while ( %x <= $lines($($+(",$scriptdir,mp3playlist.play,"))) ) {
.did -a mp3player 30 $nopath($read($($+(",$scriptdir,mp3playlist.play,")),%x))
inc %x
}
}
elseif ( %mp3.playlist != $null ) && ( !$isfile(%mp3.playlist) ) {
.did -ra mp3player 6 File Not Found
.timermp3status 1 3 /did -ra mp3player 6 No Song Is Playing
}
}
}
on *:dialog:mp3player:menu:26: {
.did -r mp3player 30
if ( $exists($($+(",$scriptdir,mp3playlist.play,"))) ) {
.remove $($+(",$scriptdir,mp3playlist.play,"))
}
}
on *:dialog:mp3player:menu:27: {
dialog -md options options
}
on *:dialog:mp3player:menu:28: {
if ( $did(mp3player,30).sel == $null ) {
.did -ra mp3player 6 Error No Song Selected to Remove
.timermp3status 1 3 /did -ra mp3player 6 No Song Is Playing
}
else {
write $($+(-dl,$did(mp3player,30).sel),2) $($+(",$scriptdir,mp3playlist.play,"))
echo -s write $($+(-dl,$did(mp3player,30).sel),2) $($+(",$scriptdir,mp3playlist.play,"))
did -d mp3player 30 $did(mp3player,30).sel
}
if ( $timer(mp3time) != $null ) && ( $readini($($+(",$scriptdir,mp3player.ini,")), options, playnext) == 1 ) {
skipnext
}
}
on *:dialog:mp3player:dclick:30: {
if ( %mp3.paused == $did(mp3player,30).sel ) {
.timermp3time -r
.unset %mp3.paused
}
elseif ( %mp3.paused != $did(mp3player,30).sel ) {
.did -ra mp3player 6 No Song Is Playing
.did -ra mp3player 11 00:00
.did -ra mp3player 13 00:00
.timermp3time off
.unset %mp3.currenttime
}
mp3play
}
on *:dialog:mp3player:sclick:1: {
if ( %mp3.paused == $did(mp3player,30).sel ) {
.timermp3time -r
.unset %mp3.paused
}
elseif ( %mp3.paused != $did(mp3player,30).sel ) {
.timermp3time off
.unset %mp3.currenttime
}
mp3play
}
on *:dialog:mp3player:sclick:2: {
stop
}
on *:dialog:mp3player:sclick:3: {
pause
}
on *:dialog:mp3player:sclick:4: {
.did -c mp3player 30 $calc($did(mp3player,30).sel - 1)
.did -ra mp3player 6 No Song Is Playing
.did -ra mp3player 11 00:00
.did -ra mp3player 13 00:00
.unset %mp3.currenttime
.timermp3time off
mp3play
}
on *:dialog:mp3player:sclick:5: {
skipnext
}
alias mp3play {
if ( $did(mp3player,30).lines == 0 ) {
.did -ra mp3player 6 Error No Playlist
.timermp3status 1 3 /did -ra mp3player 6 No Song Is Playing
halt
}
if ( $did(mp3player,30).sel == $null ) {
.did -c mp3player 30 1
}
.splay -p $read($($+(",$scriptdir,mp3playlist.play,")),$did(mp3player,30).sel)
if ( $sound($read($($+(",$scriptdir,mp3playlist.play,")),$did(mp3player,30).sel)).title != $null ) {
.did -ra mp3player 6 *Playing* $sound($read($($+(",$scriptdir,mp3playlist.play,")),$did(mp3player,30).sel)).title
}
else {
.did -ra mp3player 6 *Playing* $nopath($read($($+(",$scriptdir,mp3playlist.play,")),$did(mp3player,30).sel))
}
.did -ra mp3player 13 $asctime($calc($sound($read($($+(",$scriptdir,mp3playlist.play,")),$did(mp3player,30).sel)).length / 1000 ),nn:ss)
.timermp3time 0 1 playtime
if ( $readini($($+(",$scriptdir,mp3player.ini,")), options, enablespam) == 1 ) && ( $readini($($+(",$scriptdir,mp3player.ini,")), options, spammsg) != $null ) && ( $active ischan ) {
msg $active $readini($($+(",$scriptdir,mp3player.ini,")), options, spammsg)
}
}
alias stop {
.splay -p stop
.did -ra mp3player 6 No Song Is Playing
.did -ra mp3player 11 00:00
.did -ra mp3player 13 00:00
.timermp3time off
.unset %mp3.currenttime
.unset %mp3.paused
}
alias pause {
.splay pause
.did -ra mp3player 6 *Paused* $sound($read($($+(",$scriptdir,mp3playlist.play,")),$did(mp3player,30).sel)).title
set %mp3.paused $did(mp3player,30).sel
.timermp3time -p
}
alias skipnext {
.did -c mp3player 30 $calc($did(mp3player,30).sel + 1)
.did -ra mp3player 6 No Song Is Playing
.did -ra mp3player 11 00:00
.did -ra mp3player 13 00:00
.unset %mp3.currenttime
.timermp3time off
mp3play
}
alias playtime {
if ( $asctime(%mp3.currenttime,nn:ss) < $asctime($calc($sound($read($($+(",$scriptdir,mp3playlist.play,")),$did(mp3player,30).sel)).length / 1000 ),nn:ss) ) {
inc %mp3.currenttime
.did -ra mp3player 11 $asctime(%mp3.currenttime,nn:ss)
}
else {
if ( $readini($($+(",$scriptdir,mp3player.ini,")), options, playnext) == 1 ) && ( $did(mp3player,30).sel < $did(mp3player,30).lines ) {
skipnext
.unset %mp3.currenttime
}
elseif ( $readini($($+(",$scriptdir,mp3player.ini,")), options, playnext) == 1 ) && ( $readini($($+(",$scriptdir,mp3player.ini,")), options, loopall) == 1 ) && ( $did(mp3player,30).sel == $did(mp3player,30).lines ) {
did -c mp3player 30 1
.unset %mp3.currenttime
mp3play
}
else {
stop
}
}
}
;;;identifiers for populating the spammsg
alias songlength {
return $asctime($calc($sound($read($($+(",$scriptdir,mp3playlist.play,")),$did(mp3player,30).sel)).length / 1000 ),nn:ss)
}
alias album {
return $sound($read($($+(",$scriptdir,mp3playlist.play,")),$did(mp3player,30).sel)).album
}
alias artist {
return $sound($read($($+(",$scriptdir,mp3playlist.play,")),$did(mp3player,30).sel)).artist
}
alias song {
return $sound($read($($+(",$scriptdir,mp3playlist.play,")),$did(mp3player,30).sel)).title
}
;;;Mp3 Player options
dialog Options {
title "Options"
size -1 -1 170 160
option dbu
button "OK", 1, 50 144 25 12, ok
button "Cancel", 2, 86 144 25 12, cancel
tab "Options", 10, 0 -2 169 143
check "Save Current Playlist on Exit", 11, 2 16 80 10, tab 10
check "Start Playing On Load", 12, 2 34 116 10, tab 10
check "Append Playlist to Current On Load", 13, 2 42 104 10, tab 10
check "Skip to next song in playlist when current song is complete", 14, 2 50 160 10, tab 10
check "Loop All Songs", 15, 2 58 154 10, tab 10
text "Note: This option does NOT write to a custom playlist.", 16, 8 26 135 8, tab 10
tab "Spam", 3
text "These options are HIGHLY discouraged as most people and ops in most Channels dislike people spamming their music in the channel.", 31, 2 14 166 18, tab 3
edit "I'm currently listening to $artist - $album - $song length: $songlength **You Must Edit This to enable spamming**", 32, 2 50 164 38, tab 3 multi autovs
text "Current song $song", 33, 6 96 53 8, tab 3
text "Album $album", 34, 6 104 53 8, tab 3
text "Length $songlength", 36, 78 104 67 8, tab 3
text "Spam Message:", 17, 4 42 39 8, tab 3
box "Message Identifiers", 37, 2 88 164 48, tab 3
text "Artist $artist", 35, 78 96 53 8, tab 3
check "Enable Spam", 39, 2 32 44 10, tab 3
text "If any of these cannot be obtained from the mp3 they will not be displayed in the message. Also do not combine these with any text or puctuation.", 38, 4 114 157 20, tab 3
}
on *:dialog:options:init:0: {
if ( $isfile($($+(",$scriptdir,mp3player.ini,"))) ) {
if ( $readini($($+(",$scriptdir,mp3player.ini,")), options, saveplaylist) == 1 ) {
.did -c options 11
}
if ( $readini($($+(",$scriptdir,mp3player.ini,")), options, startplaying) == 1 ) {
.did -c options 12
}
if ( $readini($($+(",$scriptdir,mp3player.ini,")), options, appendplaylist) == 1 ) {
.did -c options 13
}
if ( $readini($($+(",$scriptdir,mp3player.ini,")), options, playnext) == 1 ) {
.did -c options 14
}
if ( $readini($($+(",$scriptdir,mp3player.ini,")), options, loopall) == 1 ) {
.did -c options 15
}
if ( $readini($($+(",$scriptdir,mp3player.ini,")), options, enablespam) == 1 ) {
.did -c options 39
}
if ( $readini($($+(",$scriptdir,mp3player.ini,")), options, spammsg) != $null ) {
.did -ra options 32 $readini($($+(",$scriptdir,mp3player.ini,")), n, options, spammsg)
}
}
}
on *:dialog:options:sclick:1: {
.writeini $($+(",$scriptdir,mp3player.ini,")) Options saveplaylist $did(options,11).state
.writeini $($+(",$scriptdir,mp3player.ini,")) Options startplaying $did(options,12).state
.writeini $($+(",$scriptdir,mp3player.ini,")) Options appendplaylist $did(options,13).state
.writeini $($+(",$scriptdir,mp3player.ini,")) Options playnext $did(options,14).state
.writeini $($+(",$scriptdir,mp3player.ini,")) Options loopall $did(options,15).state
.writeini $($+(",$scriptdir,mp3player.ini,")) Options enablespam $did(options,39).state
if ( $did(options,32).edited == $true ) {
var %x 1
while ( %x <= $did(options,32).lines ) {
var %z 1
while ( %z <= $numtok($did(options,32,%x).text,32) ) {
if ( !%spammsg ) {
.set %spammsg $gettok($did(options,32,%x).text,%z,32)
}
else {
.set %spammsg %spammsg $gettok($did(options,32,%x).text,%z,32)
}
inc %z
}
inc %x
}
.writeini $($+(",$scriptdir,mp3player.ini,")) Options spammsg %spammsg
.unset %spammsg
}
}
on *:dialog:options:sclick:12: {
if ( $did(options,12).state == 1 ) {
if ( $did(options,11).state == 0 ) {
.did -c options 11
}
}
}
;;;end of options