IceDJ consists of a number of related scripts, all of which rely on
icedj.pl to be running.

Update Notice:
--------------
- v0.9.9 is a complete rewrite. Make sure you read this documentation as
  many setup items have changed. There are a number of new fields for your
  .conf file. The playlist file format remains unchanged as do the log
  formats. Scheduling is now done internally to iceDJ, so no more cron jobs.
- If you are upgrading from a version prior to 0.9.6 and you've been using
  requests, you need to run the script convertuniqueid.pl on your request
  log to update those uniqueID's.
  Run convertuniqueid.pl <fullpath to icedj.conf>
- IF YOU'VE USED A VERSION BEFORE 0.9.4 PREVIOUSLY, THE RULES IN
  WHERE_DO_THINGS_GO HAVE CHANGED
- Check CHANGES and the sample example.conf in /data for the new features
  and fixes

Where do things go:
-------------------

Basically, there are four different directory hierarchies that the suite
uses:

- scripts
  this is where icedj.pl goes

- data
  this is central location for log files and files that scripts share.
  this directory and its files have to be read/writable by the webserver
  and the user running the scripts, as those two users will share write
  access between the files
  it's defined as /data/ of the webroot (as found in the $ENV{'DOCUMENT_ROOT'}
  environment variable. I.e. if your server is www.yourserver.com then the
  data dir is www.yourserver.com/data/. You'll want to put access restrictions
  on this directory, as someone might otherwise be able to snoop out your
  configuration file and determine your icecast server's password
  if you want to locate the data directory you need to change line 57 in
  request.pl to point to the proper directory
- mp3
  this is where your mp3 hierarchy should start
  this is also where the directories containing the info for various
  scheduled shows should be located
  if you are implementing iceDJ to stream different bitrates, make sure that
  your file names and locations follow the format you defined in the 'source'
  and 'sourceID' fields in the .conf file

- CGI
  request.pl and webadmin.pl should be stored here


Getting started with streaming:
-------------------------------
- set up your icecast server (no server, no need for a streamer :)
- make sure you have Icecast's shout streamer compiled and functioning on
  your system
- copy the contents of /data to your data directory (see above as to where
  this should be)
- copy example.conf and modify it as appropriate (the .conf file should contain
  enough documentation to explains this). Do not edit the example.conf file, as
  webadmin.pl uses it as a template for new .conf files.
- modify the playlist file--it's contains the field described in
  icedj.conf. See the icedj.conf file for information on how to alter
  the playlist format
- modify the statsblock file to create the statistics block you'd like your
  webpages to be updated with.
- modify or delete the schedule file depending on whether you are using scheduled
  events
- modify the topten template in case you are scheduling topten shows
- modify desired HTML template files and copy to your webroot
- run icedj.pl <fullpath to icedj.conf>
  this will start streaming to your icecast/shoutcast server, as well as
  generate your history and playlist page (if you set up those templates)


Add automatic requests:
-----------------------
- install request.pl in your CGI directory. (The playlist and request
  template files must exist for this)
- make sure that your playlist webpage template includes the proper
  HREF to call your request script. The format should look similar to this:

<A HREF="http://www.yourserver.com/cgi-bin/request.pl?conf=<!conf>&uniqueID=<!uniqueID>">

  where <!conf> will be filled in with the name of your configuration file
    and <!uniqueID will be filled in with the ID of each track as it
        iterates through your playlist
- The next time you restart icedj.pl (or simply HUP it to reload the playlist)
  you should be able to go to your playlist page and make a request
  for a track


Scheduling Top 10 Show:
-----------------------
- Edit your schedule file with a CRON like schedule entry.

  For example a daily Top ten show at 6pm would look like this in your
  crontab:

0 18 * * * topten

- edit the file "topten" in the data dir for your topten show template

- Now, every night at 10 pm your top ten requests will be counted down


Scheduling any other fixed Show:
--------------------------------
- Edit your schedule file with a CRON like schedule entry

0 20 * * * <showname>

- showname must correspond to a directory in mp3root, which at the very least
  contains 'playlist'
- the format of 'playlist' is:
	Line 1: Title of Show (may be HTML)
	Line 2: Extra info about show (may be HTML)
	Line 3: Title of show to be published to mp3spy
	Line 4-n: 0\tsonginfo (i.e. recordformat as used in normal playlist format)