Difference between revisions of "SCONUL Report"
(Created page with '<pre> #!/usr/bin/perl -I/opt/eprints/eprints3/perl_lib use strict; use warnings; my $date_value = '-2014-06-31'; #all dates up to June 31st 2014 use EPrints; binmode(STDOUT, '…') |
|||
Line 1: | Line 1: | ||
+ | For our SCONUL return this year we were asked for: | ||
+ | |||
+ | ====Number of full text items held in the institutional repository, available externally==== | ||
+ | |||
+ | * Include all items freely available to view as full text, including pre- and post- prints, reports, theses etc., and other complete works, e.g. artistic works, datasets, etc. Include all items, not just those added during the year. | ||
+ | |||
+ | Adam Field wrote the code below, which I copied into /eprints/eprints3/bin and ran with | ||
+ | |||
+ | perl -I ../perl_lib/ report.pl <archive_name> | ||
+ | |||
<pre> | <pre> | ||
Line 16: | Line 26: | ||
my $repo = $ep->repository( $repositoryid ); | my $repo = $ep->repository( $repositoryid ); | ||
− | die "Could not create repository object for $repositoryid\n" unless $ | + | die "Could not create repository object for $repositoryid\n" unless $repositoryid; |
my $ds = $repo->dataset('archive'); | my $ds = $repo->dataset('archive'); |
Revision as of 12:03, 22 January 2015
For our SCONUL return this year we were asked for:
Number of full text items held in the institutional repository, available externally
- Include all items freely available to view as full text, including pre- and post- prints, reports, theses etc., and other complete works, e.g. artistic works, datasets, etc. Include all items, not just those added during the year.
Adam Field wrote the code below, which I copied into /eprints/eprints3/bin and ran with
perl -I ../perl_lib/ report.pl <archive_name>
#!/usr/bin/perl -I/opt/eprints/eprints3/perl_lib use strict; use warnings; my $date_value = '-2014-06-31'; #all dates up to June 31st 2014 use EPrints; binmode(STDOUT, ':utf8'); my $repositoryid = $ARGV[0]; die "report.pl *repositoryid*\n" unless $repositoryid; my $ep = EPrints->new(); my $repo = $ep->repository( $repositoryid ); die "Could not create repository object for $repositoryid\n" unless $repositoryid; my $ds = $repo->dataset('archive'); my $search = $ds->prepare_search(); $search->add_field($ds->field('eprint_status'), 'archive'); $search->add_field($ds->field('datestamp'), $date_value); my $list = $search->perform_search; my $counts = {}; $list->map( sub { my ($repo, $ds, $dataobj, $counts) = @_; my @docs = $dataobj->get_all_documents; my $public = 0; my $private = 0; foreach my $doc (@docs) { if ($doc->value('security') eq 'public') { $public++; } else { $private++; } } if ($public) { $counts->{public}++; } elsif ($private) { $counts->{private}++; } $counts->{total}++; }, $counts); use Data::Dumper; print Dumper $counts;