Permalink
Browse files

initial import of ancient rdtj 0.4 release

  • Loading branch information...
rick committed Aug 24, 2010
0 parents commit 590ec31781df2cacdbbeb219b3b3a8523cdaa6ef
Showing with 4,587 additions and 0 deletions.
  1. +251 −0 CHANGELOG
  2. +28 −0 LICENSE
  3. +59 −0 RDTJ/Config.pm
  4. +123 −0 RDTJ/DB.pm
  5. +91 −0 RDTJ/Log.pm
  6. +83 −0 RDTJ/RDTJ.pm
  7. +749 −0 README
  8. +1,089 −0 add
  9. BIN html/1x1.gif
  10. +11 −0 html/footer.php
  11. +206 −0 html/header.php
  12. +1,311 −0 html/index.php
  13. +63 −0 insert_album
  14. +475 −0 jukebox_player.pl
  15. +6 −0 misc/update_rdtj
  16. +33 −0 tables.sql
  17. +1 −0 upgrades/tables_0.1-0.2.sql
  18. +8 −0 upgrades/tables_0.2,0.3-0.4.sql
251 CHANGELOG
@@ -0,0 +1,251 @@
+CHANGELOG for RDTJ (Roundeye's Duct-Tape Jukebox)
+
+See LICENSE file for license and copying information.
+
+[ times are GMT ]
+
+[ RDTJ 0.4 released ]
+
+date: 2001/09/28 05:56:06 author:roundeye
+- fixed another db busy-waiting loop bug
+
+date: 2001/09/27 20:24:30 author:roundeye
+- decreased mp3 player verbosity
+- fixed bug with non-playable files causing busy-waiting db loop
+
+date: 2001/09/27 06:39:31 author:roundeye
+- minor tweaks to random song logic after self-audit of code
+
+[ 0.4 Release Candidate 1]
+date: 2001/09/27 05:53:18 author:roundeye
+- updated README for 0.4
+- fixed minor usage string error in jukebox_player.pl
+
+date: 2001/09/27 01:52:09 author:roundeye
+- rewrote main back-end play loop
+ - fixed timing issues with random songs and MySQL
+ - streamlined
+ - set reasonable query delays
+- updated front-end color settings
+- turned off back-end debugging by default
+- dropped use of player tag in human-readable front-end UI (use only player message)
+- miscellaneous cleanup
+
+date: 2001/09/26 05:47:47 author:roundeye
+- merged vigilante code with jukebox code (we now use a fork() model)
+- added a SIGCHLD handler
+- factored database code out to RDTJ::DB
+- factored database queries out into hash structure
+ (significantly trimmed redundant db code)
+- added hack to allow RDTJ::Config to be read from PHP as well :-)
+
+date: 2001/09/23 19:54:41 author: roundeye
+- factored out Perl logging code to RDTJ::Log
+- factored out Perl configuration code to RDTJ::Config
+- factored out Perl signal handlers to RDTJ::RDTJ
+- now initialize Perl vars from RDTJ::Config values
+- updating file headers (license info, CHANGELOGs, etc.)
+- removed CVS Log headers
+- cleaned up formatting/indentation in numerous places
+- fixed vigilante version of PlayerName/SafePlayerName bug
+- now use FindBin to locate vigilante (and new RDTJ:: libs)
+
+date: 2001/09/21 04:27:50; author: roundeye
+- fixed: /index.php URLS -> index.php (patch submitted by Ryan Drake <ryan@mediaone.net>)
+- fixed: tables.sql queue table now includes 'player' column (patch submitted by Ryan Drake <ryan@mediaone.net>)
+- jukebox_player.pl: minor tweaks to random song routine (variable rename, added sleep 1) --
+ this is only a temporary fix until tomorrow :-)
+
+date: 2001/08/11 18:44:09; author: roundeye
+- jukebox_player.pl: Added support for random songs when playlist(s) empty
+- index.php: toggle switch for same
+- index.php: added total music time to request list display (useful for making cassette
+ tapes, e.g.)
+
+date: 2001/07/20 22:24:44; author: roundeye
+- jukebox_player.pl: er. I mean fixed the previous bug (infinite quote escaping)
+
+date: 2001/07/20 22:19:09; author: roundeye
+- jukebox_player.pl: fixed "infinite quote-escaping" bug when player gets disconnected
+
+date: 2001/01/09 11:21:08; author: roundeye
+- jukebox_player.pl: now support migration of requests from one player to another :-)
+
+date: 2001/01/08 13:46:03; author: roundeye
+- jukebox_player.pl: shitheaded bug with jukebox<->vigilante interaction
+
+date: 2001/01/08 13:23:21; author: roundeye
+- jukebox_player.pl: front-end now supports multiple jukeboxes
+
+date: 2001/01/08 11:55:50; author: roundeye
+- update_rdtj now starts jukebox properly
+
+date: 2001/01/08 11:54:35; author: roundeye
+- jukebox_player.pl: Player message now updating
+
+date: 2001/01/08 11:47:53; author: roundeye
+- jukebox_player.pl: backend now supports multiple queues
+
+date: 2001/01/08 11:02:11; author: roundeye
+- index.php is showing up modified, but a diff shows nothing; presumably this
+ is a timestamp/clock issue
+- moved upgrades/tables_1.1-1.2.sql to upgrades/tables_0.1-0.2.sql, which is
+ what it should have been called in the first place
+- added upgrades/tables_0.2,0.3-0.4.sql to allow migration between 0.[23] and 0.4
+ which will include multi-player support
+
+date: 2001/01/08 10:54:05; author: roundeye
+- added "force artist" and "force album" commands to add script
+
+date: 2000/11/02 14:41:07; author: roundeye
+- tiny interface usability change -- when submitting songs, keep the
+ proper expansion (artist expanded / album expanded) but on reload jump
+ to the album from the submitted song (reduces scrolling for multi-album
+ artists)
+
+date: 2000/11/01 13:00:23; author: roundeye
+- wired 'add' up to the database
+- added code to only add mp3's which are not already in the database.
+
+date: 2000/10/24 13:26:18; author: roundeye
+- major work on "add" script to add mp3's to database
+
+date: 2000/10/23 08:51:13; author: roundeye
+- add: adding more heuristics for name lookups
+- add: added ability to search eastcore music database
+
+
+date: 2000/10/16 20:48:50; author: roundeye
+- adds: adding heuristics: put in most common english words and
+ english single-letter frequency data
+- add: working on cleanup/final heuristics
+
+date: 2000/10/16 19:59:39; author: roundeye
+- add: incomplete first check-in of heuristic mp3 insertion tool
+
+[ RDTJ 0.3 released ]
+
+date: 2000/10/16 13:33:46; author: roundeye
+- insert_album: fixed minor bug with insert_album: it was intended to
+ be run for one album at a time, but it turns out that it works *almost* perfectly for
+ multiple albums at once (perl insert_albums list1 list2 list3 ...)
+ except for the fact that the album sort order field doesn't reset on
+ album boundaries. Sort order is still correct but instead of each album
+ having tracks numbered 1, 2, 3... they continue on upwards.
+
+date: 2000/10/16 13:06:43; author: roundeye
+- add update_rdtj, a little utility script to update rdtj
+ from CVS and restart player
+
+date: 2000/10/16 12:37:33; author: roundeye
+- made 'ps' search more robust (was failing in some circumstances)
+
+date: 2000/10/16 12:34:08; author: roundeye
+- jukebox_player.pl: added clean error page for db down situations
+- jukebox_player.pl: workarounds for a couple of very annoying bugs in old mysql's
+- jukebox_player.pl: uniform wording for hide/show links
+
+[ RDTJ 0.2 released ]
+
+date: 2000/10/15 15:22:39; author: roundeye
+- code review
+- comment cleanup
+- tweaked some logic/UI facets
+
+date: 2000/10/15 13:20:24; author: roundeye
+- documentation bug ("Getopts::Long" should have been "Getopt::Long")
+- fixed bad song list bug when admin off (introduced after -0.3 during
+ db optimization spree)
+
+date: 2000/10/15 10:37:51; author: roundeye
+- bugfix since I broke the player stop/start commands when I added the
+ time until play code
+
+date: 2000/10/15 09:53:23; author: roundeye
+- added real-time "time remaining" to player status area
+- added real-time "should play in" times to request list
+
+date: 2000/10/15 08:59:55; author: roundeye
+- added vigilante -- companion to jukebox_player which can hunt and kill
+ active mpg123 instances
+- added code to use vigilante to implement "skip track" and "pause immediately"
+ player controls
+- updated player controls interface; player status code
+
+date: 2000/10/15 06:44:45; author: roundeye
+- fixed bug with display of songs/song admin for last album in list (if I tell
+ you "while loop" can you guess what the stupid bug was?)
+- added mysql_free_result()'s where I had forgotten them earlier
+- optimized song list queries to make the song list *fast* as snake snot
+ (really makes a difference on collections > 100 albums)
+
+date: 2000/10/14 13:28:27; author: roundeye
+- added player controls
+- added collapsible song list
+- added auto-refresh capabilities
+- some formatting; testing; bugfixes; odds and ends
+
+date: 2000/10/14 10:52:03; author: roundeye
+- finished administration code (including artist, album, and song administration)
+- navigated the quagmire that is php's "magic quotes"/"addslashes"/"-v.-&quot; nightmare
+
+date: 2000/10/14 07:57:52; author: roundeye
+- added page footer pointing to sourceforge repository
+- factored out configuration variables from front-end
+- reorganized display of tracks in various places
+- made track display components optional
+- added artist administration code
+- added general admin password
+- added "close" links on requests and greatest hits areas
+- new colored region for current song; reformatted current song display
+- factored out readable_time code into a function
+- added 1x1 transparent gif to html for display prettification
+
+date: 2000/10/13 13:38:59; author: roundeye
+- added script to upgrade tables to rdtj-0.2 for
+ rdtj-0.1 users.
+ use: mysql -uuser -p -hhost mp3 < tables_1.1-1.2.sql
+
+date: 2000/10/13 13:37:47; author: roundeye
+ Minor bugfixes; major code cleanup streamlining and commenting
+- mass-kill on request lists
+- IP address tracking and display;
+- "Greatest hits" list and all the wholesome goodness therein;
+- "play an entire album" feature
+- display of playing and requested songs in songs list
+- command-line args/usage/etc. in backend
+- verbose mode for mpg123
+- many more backend options/configs
+- fixed backend to allow tracking greatest hits
+- logging to stdout by default
+- added '-' filehandle
+- support for remote host db's on backend
+- updated README documentation to track new features
+- upgrade directory in CVS
+- updated queue table to store IP's
+- added upgrade script from 0.1->0.2
+- pretty colors
+- yada yada yada
+
+[ RDTJ 0.1 released ]
+
+date: 2000/10/13 10:23:23; author: roundeye
+- command-line args processing for Perl scripts
+- override of defaults
+- commenting
+- code cleanup
+- basic sanity checking
+- now requires Getopts::Long (!)
+
+date: 2000/10/13 02:40:20; author: roundeye
+- added README (first attempt at documentation)
+- split out html header/footer into separate files
+- formatting cleanup, additional commenting
+
+date: 2000/10/12 09:28:46; author: roundeye
+- First attempt at basic installation docs and a little bit about the program.
+
+date: 2000/10/12 07:32:07; author: roundeye
+- Initial commit of rdtj source
+
+
28 LICENSE
@@ -0,0 +1,28 @@
+(NOTE: This is the BSD license)
+
+ Copyright (c) 2000, Rick Bradley (roundeye@roundeye.net, rick@eastcore.net)
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modification, are permitted provided
+ that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this list of conditions and the
+ following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+ the following disclaimer in the documentation and/or other materials provided with the distribution.
+
+ Neither the name of Rick Bradley nor the names of other contributors may be used to endorse
+ or promote products derived from this software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' AND ANY
+ EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
+ RICK BRADLEY OR OTHER CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
@@ -0,0 +1,59 @@
+package RDTJ::Config;
+
+# machinations to allow us to include this file from both Perl[5] and PHP[4]
+# flames to roundeye@roundeye.net / rick@eastcore.net
+my $junk = <<PHP;
+<?php /*
+PHP
+$junk .= qq;*/; ;
+
+#
+# Perl configuration info for rdtj (Roundeye's duct-tape jukebox)
+#
+# Rick Bradley - roundeye@roundeye.net / rick@eastcore.net
+#
+# please consult LICENSE file for license information
+# CHANGELOG lists history and additional contributor information
+#
+#
+# $Header: /cvsroot/rdtj/rdtj/RDTJ/Config.pm,v 1.4 2001/09/27 01:58:06 roundeye Exp $
+#
+
+#------------------------------------------------------------
+#
+# DEFAULT CONFIGURATION SETTINGS -- please check!
+#
+# (note: these can often be overriden on the command line)
+#
+#------------------------------------------------------------
+
+# database settings
+$dbname = 'DBI:mysql:database=mp3;host=host'; # name of database to connect to
+$dbuser = "user"; # database user name to use when connecting
+$dbpass = "password"; # password for database user
+
+# player sleep times
+$dbsleep = 20; # no. seconds to sleep before retrying a database connection
+$nosongsleep = 5; # no. seconds to sleep if there are no songs to play
+
+# player info
+$mp3_player = '/usr/bin/mpg123'; # where is the command-line mp3 player?
+$play_buffer = 1024; # player buffer in kilobytes
+
+# misc.
+$DEBUG = 0; # do debug-ish logging
+$logfile = '-'; # where does the logging go?
+$ps = '/bin/ps'; # where is the local version of "ps"?
+$random_limit = 5; # seconds (+1) to wait for random song to appear in database
+
+#------------------------------------------------------------
+#
+#
+# End configuration... move along. move along.
+#
+#
+#------------------------------------------------------------
+
+# modules must return true
+1;
+
Oops, something went wrong.

0 comments on commit 590ec31

Please sign in to comment.