Class: Alexandria::BookProviders::SBNProvider

Inherits:
Z3950Provider show all
Includes:
GetText
Defined in:
lib/alexandria/book_providers/sbn_provider.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.



19
20
21
22
23
24
25
26
27
28
# File 'lib/alexandria/book_providers/sbn_provider.rb', line 19

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



30
31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/alexandria/book_providers/sbn_provider.rb', line 30

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