From e2ce550b37beeeb7bac65d412b3f942e32cbd07a Mon Sep 17 00:00:00 2001 From: Marius Gavrilescu Date: Sat, 20 Aug 2016 10:34:56 -0400 Subject: [PATCH] Use Audio::Opusfile --- Makefile.PL | 1 + lib/App/MusicExpo.pm | 24 ++++++++++-------------- 2 files changed, 11 insertions(+), 14 deletions(-) diff --git a/Makefile.PL b/Makefile.PL index ffbd809..9cb29a9 100644 --- a/Makefile.PL +++ b/Makefile.PL @@ -12,6 +12,7 @@ WriteMakefile( SIGN => 1, PREREQ_PM => { qw/Audio::FLAC::Header 0 + Audio::Opusfile 0 HTML::Template::Compiled 0 Memoize 0 MP3::Info 0 diff --git a/lib/App/MusicExpo.pm b/lib/App/MusicExpo.pm index 5eb5a6a..3f8bc42 100644 --- a/lib/App/MusicExpo.pm +++ b/lib/App/MusicExpo.pm @@ -11,6 +11,7 @@ use Memoize qw/memoize/; use MP3::Info qw/get_mp3tag/; use Ogg::Vorbis::Header::PurePerl; use MP4::Info qw/get_mp4tag get_mp4info/; +use Audio::Opusfile qw//; use DB_File qw//; use Encode qw/encode/; @@ -113,23 +114,18 @@ sub mp4info{ sub opusinfo { my $file = $_[0]; - my %info; - my @info = `opusinfo \Q$file`; - return unless @info; - for (@info) { - chomp; - $info{$1} = $2 if /\s*([A-Z]+)=(.*)$/; - } + my $of = Audio::Opusfile->new_from_file($file); + my $tags = $of->tags; my %data = ( format => 'Opus', - title => $info{TITLE}, - artist => $info{ARTIST}, - year => $info{DATE}, - album => $info{ALBUM}, - tracknumber => $info{TRACKNUMBER}, - tracktotal => $info{TRACKTOTAL}, - genre => $info{GENRE}, + title => $tags->query('TITLE'), + artist => $tags->query('ARTIST'), + year => $tags->query('DATE'), + album => $tags->query('ALBUM'), + tracknumber => $tags->query('TRACKNUMBER'), + tracktotal => $tags->query('TRACKTOTAL'), + genre => $tags->query('GENRE'), file => scalar fileparse $file ); -- 2.39.2