Pejman Moghadam / Scripts

Play random songs

Public domain


#!/bin/bash

# History file
TMP="/tmp/PlayRandom"
touch ${TMP}

while :; do
  # find number of files
  COUNT=$(find .| wc -l)

  # Create a random number between 1 and total number of files
  number=$RANDOM
  let "number %= $COUNT"
  let "number += 1"

  # Find exact filename of that random number
  FILENAME=$(find . | head -n $number | tail -n 1)

  # Check if it is file or directory
  LIST=$(ls -lh "$FILENAME")
  DIR=$(echo $LIST | egrep '^total')

  # If it is a directory start again
  if [ "${DIR}" != "" ]; then
    continue 
  fi

  # Check if it is played before
  PWD=$(pwd)
  FILENAME=$(echo ${FILENAME} | sed -e "s,\.,${PWD},")
  EXIST=$(grep -q "${FILENAME}" "${TMP}";echo $?)
  if [ "${EXIST}" == "0" ]; then
    echo "\"${FILENAME}\" Played Before ..."
    continue
  fi

  # Play the file
  echo "Total Songs : $COUNT"
  echo "play number : $number"
  echo "Filename : \"$FILENAME\""
  mplayer "$FILENAME"
  RET=$(echo $?)

  # If played completely save it to history
  if [ "$RET" == "0" ]; then
    echo $FILENAME >> ${TMP}
  fi

  # make space for break
  echo;echo;echo;sleep 1
done

BY: Pejman Moghadam
TAG: bash, bash-script, random
DATE: 2009-05-26 13:40:34


Pejman Moghadam / Scripts [ TXT ]