All pastes #918241 Raw Edit

Stuff

public text v1 · immutable
#918241 ·published 2008-02-26 00:27 UTC
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