ConvoTrack

Nieuwe aanwinsten 2.0 update

In mijn vorige post schreef ik:

Op mijn to do-lijstje staat nog het koppelen van de records aan andere webservices zoals PiCarta, Amazon en dergelijke. Van die laatste zou ik ook graag de cover-afbeeldingen binnenhalen, maar daar moet ik eens goed voor gaan zitten.

En dat heb ik gedaan ook. De koppelingen zijn geactiveerd, en ook de Amazon covers worden -indien beschikbaar- automatisch binnengehaald. Het resultaat daarvan is iets minder spectaculair dan wat ik me er vooraf van had voorgesteld. Er worden bij de Fontys mediatheken niet erg veel Engelstalige boeken aangeschaft, waardoor er maar weinig cover-afbeeldingen vanuit Amazon worden opgehaald. Maar goed, de techniek werkt in ieder geval en dat mag een wonder heten. Het doorgronden van de xsl-opmaakcode heeft me bloed, zweet en tranen gekost. Speciaal ingewikkeld was het opbouwen van de op het ISBN-nummer gebaseerde Amazon-koppeling. Probleem daarbij was de niet-consequente wijze waarop het ISBN-nummer verpakt zat in het aangeleverde XML-bestand. Wie even door een willekeurige aanwinstenlijst scrollt, ziet items als ‘ISBN 90-232-3870-2*geb.’ en ‘ISBN 0-415-24889-2 : £60.00’.

Om een werkende koppeling te krijgen met Amazon, dient alle ‘rommel’ eruit gefilterd te worden, totdat er niet meer over is dan het tien-cijferige ISBN-nummer. Uiteindelijk is me dat gelukt, door gebruik te maken van deze constructie:

<xsl:element name="img">
<
xsl:attribute name="src">http://images.amazon.com/images/P/
<xsl:value-of select=
"substring(translate(isbn/isbnprim, '-:.()*abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWYZ€$£ ', ''), 1, 10)"
/>.01._SCMZZZZZZZ_.jpg
</xsl:attribute>
</
xsl:element>

Het lijkt complex, maar dat valt best mee (zegt hij achteraf...). De oplossing zit ‘m in de combinatie van de functies ’substring‘ en ’translate‘. De eerste zorgt er voor dat niet meer dan tien karakters getoond mogen worden, vanaf de eerste positie. De tweede functie ’translate‘ wordt gebruikt om alle niet numerieke karakters te filteren (behalve de hoofdletter X, die mag weer wel in het ISBN-nummer(!) voorkomen). Door beide functies te nesten, wordt ‘ISBN 07-506-7774-0*geb.’ netjes geconverteerd naar ‘0750677740’. De uiteindelijke URL ziet er dan zo uit: http://images.amazon.com/images/P/0750677740.01._SCMZZZZZZZ_.jpg. En dat levert dan vanzelf een mooi plaatje op:

Nu kan ik verder niets meer bedenken, behalve misschien nog wat visuele aanpassingen en een RSS-feed. Maar mocht je nog goede ideeën hebben, ik luister…

19 Reacties

Commenting is not available in this blog entry.
Abonneren op deze weblog via RSS Add to Google Add to Netvibes

of verdwaal in het archief

Reageerders