Koha/misc/cronjobs/rss
Julian Maurice b168f4a2e9 Bug 21395: Make perlcritic happy
This patch adds a .perlcriticrc (copied from qa-test-tools) and fixes
almost all perlcrictic violations according to this .perlcriticrc
The remaining violations are silenced out by appending a '## no critic'
to the offending lines. They can still be seen by using the --force
option of perlcritic
This patch also modify t/00-testcritic.t to check all Perl files using
the new .perlcriticrc.
I'm not sure if this test script is still useful as it is now equivalent
to `perlcritic --quiet .` and it looks like it is much slower
(approximatively 5 times slower on my machine)

Test plan:
1. Run `perlcritic --quiet .` from the root directory. It should output
   nothing
2. Run `perlcritic --quiet --force .`. It should output 7 errors (6
   StringyEval, 1 BarewordFileHandles)
3. Run `TEST_QA=1 prove t/00-testcritic.t`
4. Read the patch. Check that all changes make sense and do not
   introduce undesired behaviour

Signed-off-by: Bernardo Gonzalez Kriegel <bgkriegel@gmail.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
2020-06-29 12:37:02 +02:00
..
lastAcquired-1.0.conf
lastAcquired-1.0.tt
lastAcquired-2.0.conf
lastAcquired-2.0.tt
lastAcquired.conf
lastAcquired.tt
longestUnseen.conf
longestUnseen.tt
mostReserved.conf
mostReserved.tt
README
rss.pl
sm-koha-icon.jpg

About:
rss.pl is meant to provide an extensible tool for creating RSS 0.91
formatted files suitable for syndication.  The script relies on two
external files for configuration information.  Rather than trying to
explain how this occurs, I'll show you using the provided lastAcquired
files.  There are currently three rss feeds bundled in this tarball
(lastAcquired, longestUnseen, and mostReserved), the config files for 
each of these should be modified to suit your local site.  A smallish 
Koha image (sm-koha-icon.jpg) is included as well.

Dependencies:
rss.pl depends on an installed Koha system, and uses the C4::Context
module it provides.

Details:
rss.pl is meant to be run from cron (probably once a day or so -- more
often at larger libraries depending on the report being generated).  It 
is invoked like this (in the case of lastAcquired):

 rss.pl /path/to/rssKoha/lastAcquired.conf 

The basic process is that rss reads the config file
(lastAcquired.conf) to determine RSS header information, the SQL query
used to generate the results, and the Template Tookit style used to
format the output.  Since you'll likely to want to create your own RSS
content, or at least modify the ones present here, let's review the
config file and the template file.

A config file is divided into three sections; channel, image, and
config.  A section begins with the name of the section occurring alone
on a line, and ends with the beginning of the next section (or the end
of the file).  Each of these sections contains series of configuration
options in the form:

name=content

The content section can contain spaces, but not newlines, special
characters, or html mark-up.  It's also important that there are no
blank lines within the config file.

Here's the lastAquired.conf by way of example: 

channel
title=Recent Koha Acquisitions
link=http://www.koha-community.org
desc=The 15 most recent acquisitions
lang=en
lastBuild=Fri, 09 May 2003 08:00:00
image
title=Koha, the worlds best Open Source Library System
url=http://www.koha-community.org/images/foo.jpg
link=http://www.koha-community.org
config
template=lastAcquired.tt
output=lastAcquired.xml
query=select biblioitems.isbn as isbn, biblio.title as title, biblio.author as author from biblio, biblioitems, items where biblioitems.biblionumber = items.biblionumber and biblio.biblionumber = items.biblionumber and items.dateaccessioned is not NULL order by items.dateaccessioned desc


This data (and the data acquired from the query) are then used to fill
in the template.  Most of the template is boilerplate and should not
be edited.  The section within the [% FOREACH i IN ITEMS %] ... [% END %]
is the part which can be modified to create your own RSS content.

Here's the lastAcquired.tt file:

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE rss PUBLIC "-//Netscape Communications/DTD RSS 0.91/EN"
	  "http://my.netscape.com/publish/formats/rss-0.91.dtd">

<rss version="0.91">

<channel>
 <title>[% CHANNELTITLE %]</title>
 <link>[% CHANNELLINK %]</link>
 <description>[% CHANNELDESC %]</description>
 <language>[% CHANNELLANG %]</language>
 <lastBuildDate>[% CHANNELLASTBUILD %]</lastBuildDate>

 <image>
  <title>[% IMAGETITLE %]</title>
  <url>[% IMAGEURL %]</url>
  <link>[% IMAGELINK %]</link>
 </image>

[% FOREACH i IN ITEMS %]
 <item>
  <title>[% i.TITLE %], by [% i.AUTHOR %]</title>
  <link>http://opac.library.org.nz/cgi-bin/koha/opac-searchresults.pl?isbn=[% i.ISBN %]</link>
 </item>
[% END %]

</channel>
</rss>

Credits:
Originally written by Pat Eyler (pate@eylerfamily.org), suggestions,
advice, and help came from 'Content Syndication with RSS', Chris
Cormack, Mike Hansen, Steve Tonnesen and a variety of folks on #koha at 
irc.katipo.co.nz.
Updated for use with Template Toolkit by Kyle M Hall, ByWater Solutions