Class: Alexandria::BookProviders::SBNProvider

Inherits:
Z3950Provider show all
Includes:
GetText
Defined in:
lib/alexandria/book_providers/z3950.rb

Instance Attribute Summary

Attributes inherited from AbstractProvider

#fullname, #name, #prefs

Instance Method Summary collapse

Methods inherited from Z3950Provider

#books_from_resultset, #search

Methods included from Logging

included, #log

Methods inherited from AbstractProvider

#<=>, abstract?, #abstract?, #action_name, #enabled, #reinitialize, #remove, #toggle_enabled, #transport, unabstract, #variable_name

Constructor Details

#initializeSBNProvider

Returns a new instance of SBNProvider.



319
320
321
322
323
324
325
326
327
328
# File 'lib/alexandria/book_providers/z3950.rb', line 319

def initialize
  super("SBN", "Servizio Bibliotecario Nazionale (Italy)")
  prefs.variable_named("hostname").default_value = "opac.sbn.it"
  prefs.variable_named("port").default_value = 3950
  prefs.variable_named("database").default_value = "nopac"
  # supported 'USMARC', 'UNIMARC' , 'SUTRS'
  prefs.variable_named("record_syntax").default_value = "USMARC"
  prefs.variable_named("charset").default_value = "ISO-8859-1"
  prefs.read
end

Instance Method Details

#url(book) ⇒ Object



330
331
332
333
334
335
336
337
338
339
340
341
342
343
# File 'lib/alexandria/book_providers/z3950.rb', line 330

def url(book)
  "http://sbnonline.sbn.it/cgi-bin/zgw/BRIEF.pl?displayquery=" \
    "%253CB%253E%253Cfont%2520color%253D%2523000064%253E" \
    "Codice%2520ISBN%253C%2FB%253E%253C%2Ffont%253E%2520" \
    "contiene%2520%2522%2520%253CFONT%2520COLOR%253Dred%253E" +
    canonicalise_isbn_with_dashes(book.isbn) +
    "%253C%2FFONT%253E%2522&session=&zurl=opac" \
    "&zquery=%281%3D7+4%3D2+2%3D3+5%3D100+6%3D1+3%3D3+%22" +
    canonicalise_isbn_with_dashes(book.isbn) +
    "%22%29&language=it&maxentries=10&target=0&position=1"
rescue StandardError => ex
  log.warn { "Cannot create url for book #{book}; #{ex.message}" }
  nil
end