Advertisement
Guest User

Untitled

a guest
Sep 26th, 2017
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Perl 1.32 KB | None | 0 0
  1. #!/opt/local/bin/perl
  2. use warnings;
  3. use strict;
  4. use Music::Tag;
  5. use File::Slurp;
  6.  
  7. my @FILES = ();
  8.  
  9. my $tmpl = '{{track-number-pad}} - {{artist}} - {{track-name}}';
  10.  
  11. if (defined $ARGV[0] && -f $ARGV[0] && $ARGV[0] =~ m/\.m3u$/gi) {
  12.     @FILES = grep { /\.(mp3|ogg|m4a)$/i } grep { /^[^#]/ } read_file($ARGV[0]);
  13.     if (defined $ARGV[1]) {
  14.         $tmpl = $ARGV[1]
  15.     }
  16. } else {
  17.     while (my $lod = <STDIN>) {
  18.         push @FILES, $lod;
  19.     }
  20.     if (defined $ARGV[0]) {
  21.         $tmpl = $ARGV[0]
  22.     }
  23. }
  24.  
  25. chomp(@FILES);
  26.  
  27. foreach my $f (@FILES) {
  28.     my $info = Music::Tag->new($f, {quiet=>1});
  29.     $info->get_tag();
  30.     my $tmpl_i = $tmpl;
  31.    
  32.     my $md_track = int($info->track || 0);
  33.     my $md_track_padded = sprintf('%02d', $md_track) || '00';
  34.     my $md_title = $info->title || 'UNKNOWN';
  35.     my $md_album = $info->album || 'UNKNOWN';
  36.     my $md_artist = $info->artist || 'UNKNOWN';
  37.     my $md_year = $info->year || 'UNKNOWN';
  38.     my $md_file = $f;
  39.     my $md_ext = $f;
  40.     $md_ext =~ s/^.+?\.(mp3|ogg|m4a)$/$1/gi;
  41.    
  42.     $tmpl_i =~ s/{{track-number}}/$md_track/gi;
  43.     $tmpl_i =~ s/{{track-number-pad}}/$md_track_padded/gi;
  44.     $tmpl_i =~ s/{{track-name}}/$md_title/gi;
  45.     $tmpl_i =~ s/{{album}}/$md_album/gi;
  46.     $tmpl_i =~ s/{{artist}}/$md_artist/gi;
  47.     $tmpl_i =~ s/{{year}}/$md_year/gi;
  48.     $tmpl_i =~ s/{{file}}/$md_file/gi;
  49.     $tmpl_i =~ s/{{ext}}/$md_ext/gi;
  50.    
  51.     print "$tmpl_i\n";
  52. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement