]> git.sesse.net Git - shamaz/commitdiff
Split XML parsing out in a separate program. master
authorsgunderson@bigfoot.com <>
Wed, 31 Mar 2010 17:27:44 +0000 (19:27 +0200)
committersgunderson@bigfoot.com <>
Wed, 31 Mar 2010 17:27:44 +0000 (19:27 +0200)
lookup.pl
xmlparse.pl [new file with mode: 0755]

index f22357b7e46a0c7306c6e2cc1729f11a235ca805..ff7ba453e47bcccb5fdeadfe12d63e3f949b9885 100644 (file)
--- a/lookup.pl
+++ b/lookup.pl
@@ -83,18 +83,7 @@ sub lookup {
                die $res->status_line;
        }
 
-       my $parser = XML::DOM::Parser->new;
-       my $doc = $parser->parse($res->content);
-       my $tracks = $doc->getElementsByTagName("track");
-       if ($tracks->getLength == 0) {
-               print "Didn't recognize song\n";
-               exit;
-       }
-       my $track = $tracks->item(0);
-       my $title = $track->getElementsByTagName("ttitle")->item(0)->getFirstChild->getData;
-       my $artist = $track->getElementsByTagName("tartist")->item(0)->getFirstChild->getData;
-
-       print "$title,$artist\n";
+       print $res->content;
 }
 
 sub make_part {
diff --git a/xmlparse.pl b/xmlparse.pl
new file mode 100755 (executable)
index 0000000..6a8a047
--- /dev/null
@@ -0,0 +1,21 @@
+#! /usr/bin/perl
+
+use strict;
+use warnings;
+use XML::DOM;
+
+local $/ = undef;
+my $content = <>;
+
+my $parser = XML::DOM::Parser->new;
+my $doc = $parser->parse($content);
+my $tracks = $doc->getElementsByTagName("track");
+if ($tracks->getLength == 0) {
+       print "Didn't recognize song\n";
+       exit;
+}
+my $track = $tracks->item(0);
+my $title = $track->getElementsByTagName("ttitle")->item(0)->getFirstChild->getData;
+my $artist = $track->getElementsByTagName("tartist")->item(0)->getFirstChild->getData;
+
+print "$title,$artist\n";