version 1.2, 2006/08/12 01:14:53 |
version 1.5, 2007/02/08 18:13:33 |
|
|
#!/usr/bin/perl |
#!/usr/bin/perl |
# $RedRiver$ |
# $RedRiver: playmp3s.pl,v 1.4 2007/02/08 17:54:38 andrew Exp $ |
######################################################################## |
######################################################################## |
# PlayMP3.pl *** play's MP3s off a playlist using mp3play |
# PlayMP3.pl *** play's MP3s off a playlist using mp3play |
# |
# |
|
|
|
|
use vars qw/ %cfgs /; |
use vars qw/ %cfgs /; |
|
|
#use strict qw/ $cfgs{list} @playlist $cfgs{mp3play} $filename $cfgs{basedir} $cfgs{htmldir} /; |
|
#use diagnostics; |
|
|
|
my $config_file = shift || "/etc/playmp3s.conf"; |
my $config_file = shift || "/etc/playmp3s.conf"; |
|
|
|
my %cfgs = readconfig($config_file); |
|
|
my $err_log = $cfgs{errors} || "/var/log/playmp3s.log"; |
my $err_log = $cfgs{errors} || "/var/log/playmp3s.log"; |
|
|
my %cfgs = readconfig($config_file); |
|
|
|
|
|
Print_PlayLog("Beginning playtime\n\n"); |
Print_PlayLog("Beginning playtime\n\n"); |
|
|
my %Full_Playlist; |
my %Full_Playlist; |
|
|
Print_PlayLog("\tGot $song - filename is\n\t$filename\n"); |
Print_PlayLog("\tGot $song - filename is\n\t$filename\n"); |
|
|
Print_PlayLog("displaying file that is playing . . . "); |
Print_PlayLog("displaying file that is playing . . . "); |
DisplayPlaying($cfgs{htmldir},$filename); |
DisplayPlaying($cfgs{currenthtml},$filename); |
Print_PlayLog("done\n"); |
Print_PlayLog("done\n"); |
|
|
if ($save_playlist) { |
if ($save_playlist) { |
|
|
Print_PlayLog("Adding Last. . ."); |
Print_PlayLog("Adding Last. . ."); |
delete ${ $Full_Playlist{list} }{$song}; |
delete ${ $Full_Playlist{list} }{$song}; |
|
|
AddLast($filename, $cfgs{playedlist}, $cfgs{numhistory}, $cfgs{htmldir}, $cfgs{addurl}); |
AddLast($filename, $cfgs{playedlist}, $cfgs{numhistory}, $cfgs{playedhtml}, $cfgs{addurl}); |
Print_PlayLog("done\n"); |
Print_PlayLog("done\n"); |
} |
} |
|
|
Print_PlayLog("Displaying Nothing . . ."); |
Print_PlayLog("Displaying Nothing . . ."); |
DisplayPlaying($cfgs{htmldir},"Nothing"); |
DisplayPlaying($cfgs{currenthtml},"Nothing"); |
Print_PlayLog("done\n"); |
Print_PlayLog("done\n"); |
|
|
#@playlist = (); |
#@playlist = (); |
|
|
# Prints a webpage with the currently playing song |
# Prints a webpage with the currently playing song |
sub DisplayPlaying { |
sub DisplayPlaying { |
|
|
my $htmldir = shift; |
my $htmlfile = shift; |
my $playing = shift; |
my $playing = shift; |
|
|
open BLANK, ">$htmldir/current.htm" or bail("Unable to open current.htm: $!"); |
open BLANK, ">$htmlfile" or bail("Unable to open $htmlfile: $!"); |
print BLANK "<html>\n<head>\n\t<title>' . $playing . '</title>\n"; |
print BLANK "<html>\n<head>\n\t<title>' . $playing . '</title>\n"; |
print BLANK "<meta HTTP-EQUIV=\"REFRESH\" CONTENT=\"5\">\n"; |
print BLANK "<meta HTTP-EQUIV=\"REFRESH\" CONTENT=\"5\">\n"; |
print BLANK "<meta HTTP-EQUIV=\"Pragma\" CONTENT=\"no-cache\">\n"; |
print BLANK "<meta HTTP-EQUIV=\"Pragma\" CONTENT=\"no-cache\">\n"; |
|
|
|
|
####################################################################### |
####################################################################### |
# Prints a webpage with the previously played song |
# Prints a webpage with the previously played song |
# AddLast($filename, $cfgs{playedlist}, $cfgs{numhistory}, $cfgs{htmldir}, $cfgs{addurl}); |
# AddLast($filename, $cfgs{playedlist}, $cfgs{numhistory}, $cfgs{playedhtml}, $cfgs{addurl}); |
sub AddLast { |
sub AddLast { |
my $lastsong = shift; |
my $lastsong = shift; |
my $lastlist = shift; |
my $lastlist = shift; |
my $history = shift; |
my $history = shift; |
my $htmldir = shift; |
my $htmlfile = shift; |
my $addurl = shift; |
my $addurl = shift; |
|
|
my @LIST = get_playlist($lastlist); |
my @LIST = get_playlist($lastlist); |
unshift @LIST, $lastsong; |
unshift @LIST, $lastsong; |
splice (@LIST, $history); |
splice (@LIST, $history); |
save_playlist($lastlist,@LIST); |
save_playlist($lastlist,@LIST); |
DisplayPrevious($htmldir, $addurl, @LIST); |
DisplayPrevious($htmlfile, $addurl, @LIST); |
} |
} |
|
|
|
|
|
|
# Prints a webpage with the previously played song |
# Prints a webpage with the previously played song |
sub DisplayPrevious { |
sub DisplayPrevious { |
|
|
my $htmldir = shift; |
my $htmlfile = shift; |
my $addurl = shift; |
my $addurl = shift; |
my $lastplay = shift; |
my $lastplay = shift; |
my @played = @_; |
my @played = @_; |
open BLANK, ">$htmldir/played.htm" or bail("Unable to open $htmldir/played.htm: $!"); |
open BLANK, ">$htmlfile" or bail("Unable to open $htmlfile: $!"); |
print BLANK "<html>\n<head>\n\t<title>' . $lastplay . '</title>\n"; |
print BLANK "<html>\n<head>\n\t<title>' . $lastplay . '</title>\n"; |
print BLANK "<meta HTTP-EQUIV=\"REFRESH\" CONTENT=\"30\">\n"; |
print BLANK "<meta HTTP-EQUIV=\"REFRESH\" CONTENT=\"30\">\n"; |
print BLANK "<meta HTTP-EQUIV=\"Pragma\" CONTENT=\"no-cache\">\n"; |
print BLANK "<meta HTTP-EQUIV=\"Pragma\" CONTENT=\"no-cache\">\n"; |