Annotation of mp3/bin/removemp3playlist.pl, Revision 1.1.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>