Annotation of mp3/bin/removemp3playlist.pl, Revision 1.1
1.1 ! andrew 1: #!/usr/bin/perl -w
! 2: ########################################################################
! 3: # RemoveMP3Playlist.pl *** Removed MP3's from the playlist
! 4: #
! 5: # 04-19-00
! 6: # Written by andrew fresh <andrew@mad-techies.org>
! 7: ########################################################################
! 8: use strict;
! 9: use diagnostics;
! 10:
! 11:
! 12: #my qw/ $removed $filename $list /;
! 13: ########################################################################
! 14: # *** Variables ***
! 15: my $filename = $ENV{'QUERY_STRING'};
! 16: my $list = '/var/www/mp3/playlist/playlist.lst';
! 17:
! 18:
! 19:
! 20: ########################################################################
! 21: # *** MAIN ***
! 22: ########################################################################
! 23:
! 24: my @playlist = get_playlist($list);
! 25: $filename =~ s/%(..)/pack("c",hex($1))/ge;
! 26: my $removed = 0;
! 27: my $oldfilename;
! 28:
! 29: print "Content-Type: text/html\n\n";
! 30: print "<html>\n<head>\n\t<meta HTTP-EQUIV='Pragma' CONTENT='no-cache'> <title>Added $filename</title>\n<body>\n\n";
! 31:
! 32: # Print_Nav();
! 33: my $i;
! 34: for ($i=0;$i<=$#playlist;$i++) {
! 35: if ($filename eq $playlist[$i]) {
! 36: $oldfilename = splice(@playlist,$i,1);
! 37: $removed++;
! 38: }
! 39: }
! 40:
! 41: save_playlist($list,@playlist) || bail("Unable to save playlist!: $!");
! 42:
! 43: if ($removed == 1) {
! 44: print "Removed $removed instance of $filename";
! 45: } elsif ($removed > 1) {
! 46: print "Removed $removed instances of $filename";
! 47: } else {
! 48: print "Not Removed!<br>\n";
! 49: print "$filename not found"
! 50: }
! 51:
! 52: print "</body>\n</head>\n</html>\n";
! 53:
! 54:
! 55:
! 56:
! 57:
! 58:
! 59:
! 60:
! 61:
! 62:
! 63: ########################################################################
! 64: # *** SUBS ***
! 65: ########################################################################
! 66:
! 67:
! 68:
! 69:
! 70: #######################################################################
! 71: # writes back the new playlist
! 72: sub save_playlist {
! 73: my $FILE = shift;
! 74: my @lines = @_;
! 75: open (FILE, ">$FILE") || bail ("Couldn\'t open $FILE: $!");
! 76: foreach (@lines) {
! 77: print FILE "$_\n";
! 78: }
! 79: close (FILE) || bail ("Couldn't close $FILE: $!");
! 80: return 1;
! 81: }
! 82:
! 83:
! 84:
! 85:
! 86: #######################################################################
! 87: # read in the Playlist
! 88: sub get_playlist {
! 89: my $FILE = shift;
! 90: my @lines;
! 91: while (@lines == 0) {
! 92: open (FILE, $FILE) || bail ("Couldn\'t open $FILE: $!");
! 93: chomp (@lines = <FILE>);
! 94: close (FILE) || bail ("Couldn't close $FILE: $!");
! 95: }
! 96: return @lines;
! 97: }
! 98:
! 99:
! 100:
! 101:
! 102:
! 103: ########################################################################
! 104: # Bail: this subrouting dies and displays the error to the browser.
! 105: # gotten from the example in the O'Reilly
! 106: # _Learning_Perl_on_Win32_Systems_
! 107: sub bail {
! 108: my $error = "@_";
! 109: print "Error! $error";
! 110: exit;
! 111: }
! 112: ########################################################################
! 113:
! 114:
! 115: sub Print_Nav
! 116: {
! 117: open FILE, 'nav.inc' or die "\n\ncouldn't open FILE nav.inc: $!";
! 118: while (<FILE>) {
! 119: print;
! 120: }
! 121: close FILE;
! 122: }
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>