--- disc-cover Wed Apr 12 11:15:35 2000 +++ /usr/local/bin/disc-cover Wed Jan 16 18:49:06 2002 @@ -1,4 +1,4 @@ -#!/usr/bin/perl -w +#!/usr/bin/perl # # Disc-Cover - using CDDB to create a cover for music cds. Default is # to output a postscript file called 'artist_-_album.ps' provided the @@ -38,7 +38,7 @@ my ($config_output_format) = 'ps'; my ($flag_force_cddb_lookup) = 0; my ($config_device) = "/dev/cdrom"; -my ($config_cddb_cache_directory) = "$ENV{HOME}/.cddb"; +my ($config_cddb_cache_directory) = "/opt/kde2/share/apps/kscd/cddb"; my (@config_cddb_servers) = ( "http://freedb.freedb.org/cgi-bin/cddb.cgi" ); my ($config_proxy_server) = undef; my ($flag_with_extended_track_info) = 0; @@ -143,6 +143,11 @@ { $outputfile = $cddb->artist.' - '.$cddb->title; $outputfile =~ s/ /_/g; + $outputfile =~ s/"//g; + $outputfile =~ s/¡//g; + $outputfile =~ s/!//g; + $outputfile =~ s/%//g; + $outputfile =~ s/'/'/g; $outputfile =~ s#/#:#g; chomp $outputfile; } @@ -156,7 +161,9 @@ if ($config_output_format eq 'dvi') { $outputfile =~ s/(\.dvi){0,1}$/.dvi/; } if ($config_output_format eq 'ps') { $outputfile =~ s/(\.ps){0,1}$/.ps/; } if ($config_output_format eq 'cddb') { $outputfile =~ s/(\.cddb){0,1}$/.cddb/; } - warn "Output goes to \"$outputfile\"\n"; + if ($config_output_format eq 'id3') { $outputfile =~ s/(\.id3){0,1}$/.id3/; } + if ($config_output_format eq 'mytex') { $outputfile =~ s/(\.tex){0,1}$/.tex/; } + print "Output goes to \"$outputfile\"\n"; } $config_tmp_dir .= "/disc-cover-$process_number"; @@ -231,6 +238,56 @@ print OUT print_whole_cover(); close OUT; } +######### +# MYTEX # +######### +elsif ($config_output_format eq 'mytex') +{ + open OUT,">$outputfile"; + printf OUT "\\currentartist{%s}\n", filter_input_for_latex_one_line($cddb->artist); + printf OUT "\\currenttitle{%s}\n", filter_input_for_latex_one_line($cddb->title); + printf OUT "\\currentartistandtitle{%s: %s}\n", filter_input_for_latex_one_line($cddb->artist), + filter_input_for_latex_one_line($cddb->title); + while ($cddb->next_track) + { + if ($cddb->current_track_extended_info eq "") + { + printf OUT "\\currenttracknumber{%02d}", $cddb->current_track_number; + printf OUT "\\currenttrackinfo{%s}", filter_input_for_latex_one_line($cddb->current_track_info); + printf OUT "\\currenttrackminutes{%02d}", $cddb->current_track_time_in_seconds/60; + printf OUT "\\currenttrackseconds{%02d}", $cddb->current_track_time_in_seconds%60; + } + else + { + printf OUT "\\currenttracknumber{%02d}", $cddb->current_track_number; + printf OUT "\\currenttrackinfo{%s}", filter_input_for_latex_one_line($cddb->current_track_info); + printf OUT "\\currenttrackextendedinfo{%s}", filter_input_for_latex_one_line($cddb->current_track_extended_info); + printf OUT "\\currenttrackminutes{%02d}", $cddb->current_track_time_in_seconds/60; + printf OUT "\\currenttrackseconds{%02d}", $cddb->current_track_time_in_seconds%60; + } + } + printf OUT "\\cdlength{%02d:%02d}\n", $cddb->disc_length/60, $cddb->disc_length%60; + close OUT; +} +elsif ($config_output_format eq 'id3') +{ + open OUT,">$outputfile"; + while ($cddb->next_track) + { + printf OUT "id3tag -A \"%s\" -a \"%s\" -s \"%s\" -t \"%d\" -C \"# of tracks\" -T \"%d\" \${%d}\n", + #filter_input_for_latex_one_line ($cddb->title), + #filter_input_for_latex_one_line ($cddb->artist), + #filter_input_for_latex_one_line ($cddb->current_track_info), + $cddb->title, + $cddb->artist, + $cddb->current_track_info, + # $cddb->current_track_extended_info, + $cddb->current_track_number, + $cddb->number_of_tracks, + $cddb->current_track_number; + } + close OUT; +} ####### # PDF # ####### @@ -544,6 +601,8 @@ $return =~ s/»/\$\\gg\$/mg; $return =~ s/¬/\$\\neg\$/mg; $return =~ s/­/--/mg; + $return =~ s/"/''/g; + $return =~ s/_/\\_/g; $return =~ s/¯/\$\\bar{ }\$/mg; #FIXME Needs AMS: $return =~ s/¥/\$\\yen\$/mg;