[Koha-patches] [PATCH] A new script to check URLs in 856$u field
Frederic Demians
f.demians at tamil.fr
Tue Feb 10 07:13:30 CET 2009
---
misc/cronjobs/check-url.pl | 95 ++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 95 insertions(+), 0 deletions(-)
create mode 100755 misc/cronjobs/check-url.pl
diff --git a/misc/cronjobs/check-url.pl b/misc/cronjobs/check-url.pl
new file mode 100755
index 0000000..cd6dd22
--- /dev/null
+++ b/misc/cronjobs/check-url.pl
@@ -0,0 +1,95 @@
+#!/usr/bin/perl
+
+#
+# Copyright 2009 Tamil s.a.r.l.
+#
+# This software is placed under the gnu General Public License, v2
+# (http://www.gnu.org/licenses/gpl.html)
+#
+
+use strict;
+use warnings;
+use diagnostics;
+use Carp;
+use LWP::Simple;
+use Pod::Usage;
+use Getopt::Long;
+use C4::Context;
+use C4::Biblio;
+
+
+my $verbose = 0;
+my $help = 0;
+my $host = '';
+GetOptions(
+ 'verbose' => \$verbose,
+ 'help' => \$help,
+ 'host=s' => \$host,
+);
+
+sub usage {
+ pod2usage( -verbose => 2 );
+ exit;
+}
+
+usage() if $help;
+
+my $context = new C4::Context( );
+my $dbh = $context->dbh;
+my $sth = $dbh->prepare(
+ "SELECT biblionumber FROM biblioitems WHERE url <> ''" );
+$sth->execute;
+while ( my ($biblionumber) = $sth->fetchrow ) {
+ my $record = GetMarcBiblio( $biblionumber );
+ next unless $record->field('856');
+ foreach my $field ( $record->field('856') ) {
+ my $url = $field->subfield('u');
+ next unless $url;
+ $url = "$host/$url" unless $url =~ /^http/;
+ if ( head( $url ) ) {
+ print "$biblionumber\t$url\tsucceed\n" if $verbose;
+ }
+ else {
+ print "$biblionumber\t$url\tfailed\n";
+ }
+ }
+}
+exit;
+
+=head1 NAME
+
+check-url.pl - Check URLs from 856$u field.
+
+=head1 USAGE
+
+=over
+
+=item check-url.pl [--verbose|--help] [--host=http://default.tld]
+
+Scan all URL found in 856$u and display if ressources are available or not.
+
+=back
+
+=head1 PARAMETERS
+
+=over
+
+=item B<--host=http://default.tld>
+
+Server host used when URL doesn't have one, ie doesn't begin with 'http:'.
+For example, if --host=http://www.mylib.com, then when 856$u contains
+'img/image.jpg', the url checked is: http://www.mylib.com/image.jpg'.
+
+=item B<--verbose|-v>
+
+Output succeed URL checks with failed ones.
+
+=item B<--help|-h>
+
+Print this help page.
+
+=back
+
+=cut
+
+
--
1.5.5.GIT
More information about the Koha-patches
mailing list