the metadata fetcher
[bse.git] / site / cgi-bin / modules / BSE / TB / MetaEntry.pm
index 89988ef..32ab3b8 100644 (file)
@@ -2,7 +2,7 @@ package BSE::TB::MetaEntry;
 use strict;
 use base 'Squirrel::Row';
 
-our $VERSION = "1.002";
+our $VERSION = "1.004";
 
 sub table {
   "bse_article_file_meta";
@@ -48,4 +48,17 @@ sub set_value_text {
   1;
 }
 
+sub retrieve_json {
+  my ($self) = @_;
+
+  return unless $self->content_type
+    =~ m!\A(?:application/json|text/x-json(?: encoding=(?:"utf-8"|utf-8))?)\z!;
+
+  require JSON;
+  my $json = JSON->new->utf8;
+  my $data;
+  return unless eval { $data = $json->decode($self->value); 1 };
+  return $data;
+}
+
 1;