alexandria-book-collection-manager 0.7.1 → 0.7.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (210) hide show
  1. checksums.yaml +5 -5
  2. data/.github/dependabot.yml +9 -0
  3. data/.gitignore +5 -2
  4. data/.hound.yml +2 -0
  5. data/.rubocop.yml +113 -45
  6. data/.rubocop_todo.yml +82 -170
  7. data/.simplecov +5 -1
  8. data/.travis.yml +45 -0
  9. data/.yardopts +1 -1
  10. data/CHANGELOG.md +60 -0
  11. data/ChangeLog.0 +33 -35
  12. data/Gemfile +6 -5
  13. data/INSTALL.md +164 -0
  14. data/README.md +52 -42
  15. data/Rakefile +95 -109
  16. data/TODO.md +9 -1
  17. data/alexandria-book-collection-manager.gemspec +52 -45
  18. data/bin/alexandria +31 -53
  19. data/doc/AUTHORS +61 -0
  20. data/doc/BUGS +31 -0
  21. data/doc/FAQ +365 -0
  22. data/doc/HACKING +19 -0
  23. data/doc/NEWS +341 -0
  24. data/doc/alexandria.1 +120 -0
  25. data/doc/cuecat_support.rdoc +67 -0
  26. data/doc/dependency_decisions.yml +80 -0
  27. data/lib/alexandria.rb +29 -37
  28. data/lib/alexandria/about.rb +52 -51
  29. data/lib/alexandria/book_providers.rb +94 -101
  30. data/lib/alexandria/book_providers/adlibris.rb +45 -85
  31. data/lib/alexandria/book_providers/amazon_aws.rb +105 -113
  32. data/lib/alexandria/book_providers/amazon_ecs_util.rb +293 -324
  33. data/lib/alexandria/book_providers/barnes_and_noble.rb +54 -53
  34. data/lib/alexandria/book_providers/douban.rb +29 -51
  35. data/lib/alexandria/book_providers/proxis.rb +42 -59
  36. data/lib/alexandria/book_providers/pseudomarc.rb +79 -99
  37. data/lib/alexandria/book_providers/siciliano.rb +68 -70
  38. data/lib/alexandria/book_providers/thalia.rb +46 -45
  39. data/lib/alexandria/book_providers/web.rb +17 -33
  40. data/lib/alexandria/book_providers/worldcat.rb +74 -102
  41. data/lib/alexandria/book_providers/z3950.rb +170 -174
  42. data/lib/alexandria/config.rb +5 -3
  43. data/lib/alexandria/console.rb +10 -21
  44. data/lib/alexandria/default_preferences.rb +37 -0
  45. data/lib/alexandria/execution_queue.rb +17 -15
  46. data/lib/alexandria/export_format.rb +47 -0
  47. data/lib/alexandria/export_library.rb +188 -302
  48. data/lib/alexandria/import_library.rb +114 -155
  49. data/lib/alexandria/import_library_csv.rb +46 -96
  50. data/lib/alexandria/library_collection.rb +79 -0
  51. data/lib/alexandria/library_sort_order.rb +45 -0
  52. data/lib/alexandria/library_store.rb +233 -0
  53. data/lib/alexandria/logging.rb +15 -19
  54. data/lib/alexandria/models/book.rb +15 -20
  55. data/lib/alexandria/models/library.rb +81 -363
  56. data/lib/alexandria/net.rb +7 -6
  57. data/lib/alexandria/preferences.rb +73 -91
  58. data/lib/alexandria/scanners.rb +4 -2
  59. data/lib/alexandria/scanners/{cuecat.rb → cue_cat.rb} +24 -20
  60. data/lib/alexandria/scanners/keyboard.rb +10 -8
  61. data/lib/alexandria/smart_library.rb +135 -171
  62. data/lib/alexandria/ui.rb +17 -15
  63. data/lib/alexandria/ui/about_dialog.rb +49 -0
  64. data/lib/alexandria/ui/{dialogs/acquire_dialog.rb → acquire_dialog.rb} +129 -152
  65. data/lib/alexandria/ui/alert_dialog.rb +64 -0
  66. data/lib/alexandria/ui/bad_isbns_dialog.rb +41 -0
  67. data/lib/alexandria/ui/{dialogs/barcode_animation.rb → barcode_animation.rb} +18 -15
  68. data/lib/alexandria/ui/{dialogs/book_properties_dialog.rb → book_properties_dialog.rb} +44 -61
  69. data/lib/alexandria/ui/{dialogs/book_properties_dialog_base.rb → book_properties_dialog_base.rb} +84 -89
  70. data/lib/alexandria/ui/builder_base.rb +9 -27
  71. data/lib/alexandria/ui/callbacks.rb +188 -186
  72. data/lib/alexandria/ui/columns.rb +2 -0
  73. data/lib/alexandria/ui/completion_models.rb +12 -23
  74. data/lib/alexandria/ui/confirm_erase_dialog.rb +33 -0
  75. data/lib/alexandria/ui/conflict_while_copying_dialog.rb +34 -0
  76. data/lib/alexandria/ui/dndable.rb +10 -8
  77. data/lib/alexandria/ui/error_dialog.rb +25 -0
  78. data/lib/alexandria/ui/export_dialog.rb +139 -0
  79. data/lib/alexandria/ui/icons.rb +49 -65
  80. data/lib/alexandria/ui/iconview.rb +15 -13
  81. data/lib/alexandria/ui/iconview_tooltips.rb +43 -58
  82. data/lib/alexandria/ui/import_dialog.rb +157 -0
  83. data/lib/alexandria/ui/init.rb +23 -33
  84. data/lib/alexandria/ui/keep_bad_isbn_dialog.rb +36 -0
  85. data/lib/alexandria/ui/libraries_combo.rb +18 -14
  86. data/lib/alexandria/ui/listview.rb +77 -88
  87. data/lib/alexandria/ui/main_app.rb +26 -26
  88. data/lib/alexandria/ui/misc_dialogs.rb +10 -0
  89. data/lib/alexandria/ui/multi_drag_treeview.rb +30 -41
  90. data/lib/alexandria/ui/{dialogs/new_book_dialog.rb → new_book_dialog.rb} +168 -215
  91. data/lib/alexandria/ui/new_book_dialog_manual.rb +139 -0
  92. data/lib/alexandria/ui/new_provider_dialog.rb +100 -0
  93. data/lib/alexandria/ui/new_smart_library_dialog.rb +74 -0
  94. data/lib/alexandria/ui/preferences_dialog.rb +313 -0
  95. data/lib/alexandria/ui/provider_preferences_base_dialog.rb +95 -0
  96. data/lib/alexandria/ui/provider_preferences_dialog.rb +35 -0
  97. data/lib/alexandria/ui/really_delete_dialog.rb +53 -0
  98. data/lib/alexandria/ui/{sidepane.rb → sidepane_manager.rb} +62 -72
  99. data/lib/alexandria/ui/skip_entry_dialog.rb +33 -0
  100. data/lib/alexandria/ui/smart_library_properties_dialog.rb +60 -0
  101. data/lib/alexandria/ui/{dialogs/smart_library_properties_dialog_base.rb → smart_library_properties_dialog_base.rb} +96 -172
  102. data/lib/alexandria/ui/smart_library_rule_box.rb +119 -0
  103. data/lib/alexandria/ui/sound.rb +13 -13
  104. data/lib/alexandria/ui/ui_manager.rb +262 -283
  105. data/lib/alexandria/undo_manager.rb +3 -0
  106. data/lib/alexandria/version.rb +6 -19
  107. data/lib/alexandria/web_themes.rb +24 -21
  108. data/po/Makefile +2 -2
  109. data/po/cs.po +993 -880
  110. data/po/cy.po +957 -874
  111. data/po/de.po +990 -869
  112. data/po/el.po +989 -869
  113. data/po/es.po +985 -865
  114. data/po/fr.po +986 -870
  115. data/po/ga.po +907 -823
  116. data/po/gl.po +981 -865
  117. data/po/it.po +986 -868
  118. data/po/ja.po +969 -853
  119. data/po/mk.po +983 -863
  120. data/po/nb.po +979 -863
  121. data/po/nl.po +983 -864
  122. data/po/pl.po +1020 -969
  123. data/po/pt.po +988 -861
  124. data/po/pt_BR.po +984 -868
  125. data/po/ru.po +992 -873
  126. data/po/sk.po +987 -869
  127. data/po/sv.po +977 -861
  128. data/po/uk.po +975 -865
  129. data/po/zh_TW.po +976 -860
  130. data/schemas/alexandria.schemas +25 -3
  131. data/share/alexandria/glade/acquire_dialog__builder.glade +15 -12
  132. data/share/alexandria/glade/book_properties_dialog__builder.glade +171 -299
  133. data/share/alexandria/glade/main_app__builder.glade +24 -33
  134. data/share/alexandria/glade/new_book_dialog__builder.glade +27 -59
  135. data/share/alexandria/glade/preferences_dialog__builder.glade +250 -290
  136. data/share/gnome/help/alexandria/C/introduction.xml +0 -8
  137. data/share/gnome/help/alexandria/C/searching.xml +1 -1
  138. data/share/gnome/help/alexandria/C/smart-libraries.xml +2 -2
  139. data/share/gnome/help/alexandria/C/working-with-libraries.xml +1 -1
  140. data/share/gnome/help/alexandria/fr/alexandria.xml +1 -1
  141. data/share/gnome/help/alexandria/ja/introduction.xml +0 -8
  142. data/share/gnome/help/alexandria/ja/smart-libraries.xml +1 -1
  143. data/spec/alexandria/book_providers/world_cat_provider_spec.rb +160 -0
  144. data/spec/alexandria/book_providers_spec.rb +77 -210
  145. data/spec/alexandria/book_spec.rb +16 -12
  146. data/spec/alexandria/console_spec.rb +27 -0
  147. data/spec/alexandria/export_library_spec.rb +130 -0
  148. data/spec/alexandria/library_spec.rb +130 -172
  149. data/spec/alexandria/library_store_spec.rb +37 -0
  150. data/spec/alexandria/preferences_spec.rb +46 -17
  151. data/spec/alexandria/scanners/cue_cat_spec.rb +52 -0
  152. data/spec/alexandria/smart_library_spec.rb +32 -25
  153. data/spec/alexandria/ui/about_dialog_spec.rb +14 -0
  154. data/spec/alexandria/ui/acquire_dialog_spec.rb +14 -0
  155. data/spec/alexandria/ui/alert_dialog_spec.rb +16 -0
  156. data/spec/alexandria/ui/bad_isbns_dialog_spec.rb +14 -0
  157. data/spec/alexandria/ui/book_properties_dialog_spec.rb +17 -0
  158. data/spec/alexandria/ui/confirm_erase_dialog_spec.rb +14 -0
  159. data/spec/alexandria/ui/conflict_while_copying_dialog_spec.rb +16 -0
  160. data/spec/alexandria/ui/error_dialog_spec.rb +14 -0
  161. data/spec/alexandria/ui/export_dialog_spec.rb +15 -0
  162. data/spec/alexandria/ui/icons_spec.rb +26 -0
  163. data/spec/alexandria/ui/iconview_spec.rb +9 -21
  164. data/spec/alexandria/ui/import_dialog_spec.rb +41 -0
  165. data/spec/alexandria/ui/keep_bad_isbn_dialog_spec.rb +17 -0
  166. data/spec/alexandria/ui/main_app_spec.rb +8 -33
  167. data/spec/alexandria/ui/new_book_dialog_manual_spec.rb +15 -0
  168. data/spec/alexandria/ui/new_book_dialog_spec.rb +22 -0
  169. data/spec/alexandria/ui/new_provider_dialog_spec.rb +30 -0
  170. data/spec/alexandria/ui/new_smart_library_dialog_spec.rb +39 -0
  171. data/spec/alexandria/ui/preferences_dialog_spec.rb +14 -0
  172. data/spec/alexandria/ui/provider_preferences_dialog_spec.rb +34 -0
  173. data/spec/alexandria/ui/really_delete_dialog_spec.rb +16 -0
  174. data/spec/alexandria/ui/sidepane_manager_spec.rb +15 -0
  175. data/spec/alexandria/ui/skip_entry_dialog_spec.rb +14 -0
  176. data/spec/alexandria/ui/smart_library_properties_dialog_spec.rb +32 -0
  177. data/spec/alexandria/ui/sound_spec.rb +4 -2
  178. data/spec/alexandria/ui/ui_manager_spec.rb +45 -20
  179. data/spec/end_to_end/basic_run_spec.rb +57 -0
  180. data/spec/spec_helper.rb +66 -33
  181. data/tasks/setup.rb +5 -3
  182. data/tasks/spec.rake +18 -3
  183. data/util/rake/fileinstall.rb +38 -40
  184. data/util/rake/gettextgenerate.rb +15 -70
  185. data/util/rake/omfgenerate.rb +10 -10
  186. metadata +176 -60
  187. data/INSTALL.rdoc +0 -148
  188. data/dogtail/basic_run_test.py +0 -9
  189. data/lib/alexandria/book_providers/bol_it.rb +0 -160
  190. data/lib/alexandria/book_providers/deastore.rb +0 -273
  191. data/lib/alexandria/book_providers/ibs_it.rb +0 -147
  192. data/lib/alexandria/book_providers/mcu.rb +0 -169
  193. data/lib/alexandria/book_providers/renaud.rb +0 -140
  194. data/lib/alexandria/book_providers/webster_it.rb +0 -167
  195. data/lib/alexandria/ui/dialogs/about_dialog.rb +0 -59
  196. data/lib/alexandria/ui/dialogs/alert_dialog.rb +0 -70
  197. data/lib/alexandria/ui/dialogs/bad_isbns_dialog.rb +0 -43
  198. data/lib/alexandria/ui/dialogs/export_dialog.rb +0 -171
  199. data/lib/alexandria/ui/dialogs/import_dialog.rb +0 -196
  200. data/lib/alexandria/ui/dialogs/misc_dialogs.rb +0 -85
  201. data/lib/alexandria/ui/dialogs/new_book_dialog_manual.rb +0 -154
  202. data/lib/alexandria/ui/dialogs/new_smart_library_dialog.rb +0 -74
  203. data/lib/alexandria/ui/dialogs/preferences_dialog.rb +0 -578
  204. data/lib/alexandria/ui/dialogs/smart_library_properties_dialog.rb +0 -57
  205. data/spec/alexandria/scanners/cuecat_spec.rb +0 -65
  206. data/spec/alexandria/ui/dialogs_spec.rb +0 -94
  207. data/spec/alexandria/ui/sidepane_spec.rb +0 -27
  208. data/spec/alexandria/ui/ui_utilities_spec.rb +0 -60
  209. data/spec/alexandria/utilities_spec.rb +0 -50
  210. data/tasks/dogtail.rake +0 -4
@@ -1,55 +1,33 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
 
3
- # Copyright (C) 2004-2006 Laurent Sansonetti
4
- # Copyright (C) 2007, 2008 Joseph Method
5
- # Copyright (C) 2007, 2009 Cathal Mc Ginley
6
- # Copyright (C) 2014, 2015 Matijs van Zuijlen
4
+ # This file is part of Alexandria.
7
5
  #
8
- # Alexandria is free software; you can redistribute it and/or
9
- # modify it under the terms of the GNU General Public License as
10
- # published by the Free Software Foundation; either version 2 of the
11
- # License, or (at your option) any later version.
12
- #
13
- # Alexandria is distributed in the hope that it will be useful,
14
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
15
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16
- # General Public License for more details.
17
- #
18
- # You should have received a copy of the GNU General Public
19
- # License along with Alexandria; see the file COPYING. If not,
20
- # write to the Free Software Foundation, Inc., 51 Franklin Street,
21
- # Fifth Floor, Boston, MA 02110-1301 USA.
6
+ # See the file README.md for authorship and licensing information.
7
+
8
+ require "gettext"
9
+ require "alexandria"
10
+ require "optparse"
11
+ require "ostruct"
22
12
 
23
- require 'gettext'
24
- require 'alexandria'
25
- require 'optparse'
26
- require 'ostruct'
13
+ store = Alexandria::LibraryStore.new(Alexandria::Library::DEFAULT_DIR)
14
+ Alexandria::LibraryCollection.instance.library_store = store
27
15
 
28
16
  # options = OpenStruct.new
29
17
  OptionParser.new do |opts|
30
- opts.banner = 'Usage: alexandria [options]'
31
- opts.on('-l', '--list', 'List libraries in numbered format') do
18
+ opts.banner = "Usage: alexandria [options]"
19
+ opts.on("-l", "--list", "List libraries in numbered format") do
32
20
  puts Alexandria.list_books_on_console
33
21
  exit
34
22
  end
35
- # opts.on("--output FORMAT",
36
- # "Output library as FORMAT: csv|xml|yaml; use with --library or omit for ALL") do |val|
37
- # options.format = val
38
- # exit
39
- # end
40
- # opts.on("--library LIBRARY",
41
- # "Used with --output to pick a library to output") do |val|
42
- # options.library = val
43
- # exit
44
- # end
45
- opts.on('-d', '--debug', 'Run in debug mode') do
23
+ opts.on("-d", "--debug", "Run in debug mode") do
46
24
  $DEBUG = true
47
25
  end
48
- opts.on('-h', '--help', 'Show help options') do
26
+ opts.on("-h", "--help", "Show help options") do
49
27
  puts opts
50
28
  exit
51
29
  end
52
- opts.on('-v', '--version', 'Get version number') do
30
+ opts.on("-v", "--version", "Get version number") do
53
31
  puts Alexandria::VERSION
54
32
  exit
55
33
  end
@@ -57,21 +35,21 @@ end.parse!
57
35
 
58
36
  begin
59
37
  Alexandria.main
60
- rescue => e
61
- $stderr.puts <<EOS
62
- -----------------------
63
- Alexandria just crashed
64
- -----------------------
65
- Timestamp: #{Time.now}
66
- Message: #{e.message}
67
- Backtrace:
68
- #{e.backtrace.join("\n")}
69
- Release: #{Alexandria::VERSION}(#{Alexandria::DISPLAY_VERSION})
70
- Uname -a: #{`uname -a`.chomp}
71
- --
72
- Please report this dump to '#{Alexandria::BUGREPORT_URL}' with some additional
73
- information, such as the description of the crash and the steps to reproduce it
74
- (if it's possible).
75
- EOS
38
+ rescue StandardError => ex
39
+ warn <<~EOS
40
+ -----------------------
41
+ Alexandria just crashed
42
+ -----------------------
43
+ Timestamp: #{Time.now}
44
+ Message: #{ex.message}
45
+ Backtrace:
46
+ #{ex.backtrace.join("\n")}
47
+ Release: #{Alexandria::VERSION}(#{Alexandria::DISPLAY_VERSION})
48
+ Uname -a: #{`uname -a`.chomp}
49
+ --
50
+ Please report this dump to '#{Alexandria::BUGREPORT_URL}' with some additional
51
+ information, such as the description of the crash and the steps to reproduce it
52
+ (if it's possible).
53
+ EOS
76
54
  exit 1
77
55
  end
@@ -0,0 +1,61 @@
1
+ Maintainer:
2
+ Matijs van Zuijlen <matijs@matijs.net>
3
+
4
+ Contributors:
5
+ Alexander McCormmach <alexander@tunicate.org>
6
+ Aymeric Nys <aymeric@nnx.com>
7
+ Cathal Mc Ginley <cathal.alexandria@gnostai.org>
8
+ Claudio Belotti <bel8@lilik.it>
9
+ Constantine Evans <cevans@costinet.org>
10
+ Dafydd Harries <daf@muse.19inch.net>
11
+ Javier Fernandez-Sanguino Pena <jfs@debian.org>
12
+ Joseph Method <tristil@gmail.com>
13
+ Kevin Schultz <schultkl@ieee.org>
14
+ Laurent Sansonetti <lrz@gnome.org>
15
+ Marco Costantini <costanti@science.unitn.it>
16
+ Mathieu Leduc-Hamel <arrak@arrak.org>
17
+ Owain Evans <o.evans@gmail.com>
18
+ Pascal Terjan <pterjan@linuxfr.org>
19
+ Rene Samselnig <sandman@sdm-net.org>
20
+ Robby Stephenson <robby@periapsis.org>
21
+ Sun Ning <classicning@gmail.com>
22
+ Takayuki Kusano <AE5T-KSN@asahi-net.or.jp>
23
+ Timothy Malone <timothy.malone@gmail.com>
24
+ Zachary P. Landau <kapheine@hypa.net>
25
+
26
+ Documentors:
27
+ Cathal Mc Ginley <cathal.alexandria@gnostai.org>
28
+ Liam Davison <registrations@liamjdavison.info>
29
+
30
+ Artists:
31
+ Andreas Nilsson <nisses.mail@home.se>
32
+ Stefanie Dijoux <stefanie.dijoux@gmail.com>
33
+
34
+ Translators:
35
+ Adrián Chaves Fernández <adriyetichaves@gmail.com> (gl)
36
+ Cathal Mc Ginley <cathal.alexandria@gnostai.org> (ga)
37
+ CHIKAMA Masaki <masaki.chikama@gmail.com> (ja)
38
+ Dafydd Harries <daf@muse.19inch.net> (cy)
39
+ Damjan Dimitrioski <damjandimitrioski@gmail.com> (mk)
40
+ Giacomo Margarito <giacomomargarito@gmail.com> (it)
41
+ Jack Myrseh <jack@enkom.no> (nb)
42
+ Joachim Breitner <mail@joachim-breitner.de> (de)
43
+ José Ling <jlgdot369@gmail.com> (zh_TW)
44
+ Lennart Karssen <lennart@karssen.org> (nl)
45
+ Lígia Moreira <ligia.moreira@netvisao.pt> (fr, pt, pt_BR)
46
+ Martin Karlsson <martinkarlsson81@hotmail.com> (sv)
47
+ Michael Kotsarinis <mkotsari1@pre.forthnet.gr> (el)
48
+ Miguel Ángel García <magmax@ieee.org> (es)
49
+ Peter Kováč <kovac.peter@fotopriestor.sk> (sk)
50
+ Petr Vanek <vanous@penguin.cz> (cs)
51
+ Piotr Drąg <piotrdrag@gmail.com> (pl)
52
+ Serhij Dubyk <dubyk@library.lviv.ua> (uk)
53
+
54
+ Former translators:
55
+ David Weinehall <tao@debian.org> (sv)
56
+ Jiří Pejchal <jiri.pejchal@gmail.com> (cs)
57
+ Laurent Sansonetti <lrz@gnome.org> (fr)
58
+ Lucas Rocha <lucasr@im.ufba.br> (pt_BR)
59
+ Marco Costantini <costanti@science.unitn.it> (it)
60
+ Masao Mutoh <mutoh@highway.ne.jp> (ja)
61
+ Mirko Maischberger <mirko@lilik.it> (it)
@@ -0,0 +1,31 @@
1
+ = Bugs and Shortcomings
2
+
3
+ There are a couple of well known, long-standing issues with
4
+ Alexandria. These issues will, hopefully, be addressed in upcoming
5
+ releases. There are also specific bugs tracked on RubyForge:
6
+ <http://rubyforge.org/tracker/?group_id=205>
7
+
8
+ == Icon Display Spacing
9
+
10
+ While the list view of books is naturally neat, the default icon view
11
+ suffers from problematic icon spacing; often the book covers appear to
12
+ be randomly scattered. They cannot even be adjusted afterwards. This
13
+ is just an aesthetic concern, but a frustrating one.
14
+
15
+ It is probable that this is due to inconsistent use of the GTK+ thread
16
+ dispatcher is at the root of these problems. Hopefully future
17
+ development can clean up the code in this regard.
18
+
19
+ == Multiple Copies of Books
20
+
21
+ The limited expressiveness of Alexandria's domain model means that it
22
+ is not possible to keep a record of more than one copy of a given book
23
+ in a single library.
24
+
25
+ == Large Collections
26
+
27
+ The user-interface becomes slow and unresponsive when dealing with
28
+ libraries over about 100 books. This is quite a low threshold on
29
+ scalability. The simple solution is to make a couple of new libraries
30
+ to hold a hundred books each; a common approach is to split them up
31
+ according to broad subject area.
data/doc/FAQ ADDED
@@ -0,0 +1,365 @@
1
+ Copyright (C) 2007 Marco Costantini
2
+
3
+ ########################################################################
4
+
5
+ Question: I have a ( Bug | Support Request | Patch | Feature Request ).
6
+
7
+ Answer: You are welcome to report it. Please use the tracker at
8
+ http://rubyforge.org/tracker/?group_id=205
9
+
10
+ It may be helpful to read the text "How to Report Bugs Effectively", at
11
+ http://www.chiark.greenend.org.uk/~sgtatham/bugs.html
12
+
13
+ Please, one bug per report, and one report per bug.
14
+
15
+ Please use a meaningful and specific summary.
16
+
17
+ In order to let us investigate the bug and fix it for you, we need a clear
18
+ and specific information about how to replicate it. For instance: report
19
+ the ISBN of the book for which the bug happens; report the book provider
20
+ used if relevant; copy and paste the error message. You may also start
21
+ Alexandria in terminal window, and copy and paste the output on that
22
+ window.
23
+
24
+ In the past we got the bug report [#6767] saying:
25
+ "Entering a valid ISBN number (many different) is rejected by the
26
+ program. Stating to be an invalid ISBN."
27
+ This user didn't report any single non-working ISBN; and didn't explain
28
+ "rejected" enough. Hence, even if further work has been done on this
29
+ topic, we can't know whether this bug was a real one, and whether it has
30
+ been already solved or not.
31
+
32
+ If you report only the backtrace without saying how to replicate the
33
+ bug, it is usually impossible to understand and fix the bug.
34
+
35
+ Please have a look at the already reported bugs or feature request:
36
+ it is useless to report again an already reported one.
37
+ If you have more information, please add it at the already reported bug,
38
+ instead of opening a new one.
39
+
40
+ Your bug could be a bug already solved in the development version of
41
+ Alexandria. You can get the development version at
42
+ http://rubyforge.org/scm/?group_id=205
43
+
44
+
45
+ ########################################################################
46
+
47
+
48
+ Question: Where are the Z39.50 stuff, the providers US Library of
49
+ Congress and British Library, the advanced options, and the window for
50
+ adding new providers? I can't install Ruby/ZOOM.
51
+
52
+ Answer: All these things require that the library Ruby/ZOOM,
53
+ version >= 0.2.0 is installed and working. You can get it at
54
+ http://ruby-zoom.rubyforge.org/ Install it according to its
55
+ documentation.
56
+
57
+ Ruby/ZOOM requires YAZ, http://www.indexdata.dk/yaz/ , compiled with
58
+ passing the --enable-shared option to the configure script:
59
+
60
+ ./configure --enable-shared
61
+
62
+ before building YAZ with make.
63
+
64
+ The following works for me with Ubuntu
65
+
66
+ sudo apt-get -y install libyaz-dev ruby ruby1.8-dev make gcc
67
+ wget http://rubyforge.org/frs/download.php/6940/ruby-zoom-0.2.2.tar.gz
68
+ tar xfz ruby-zoom-0.2.2.tar.gz
69
+ cd ruby-zoom-0.2.2/
70
+ ruby extconf.rb
71
+ make
72
+ sudo make install
73
+
74
+
75
+
76
+ List of Z39.50 server are at
77
+ http://www.webclarity.info/registry/browse
78
+ http://targettest.indexdata.com/
79
+
80
+
81
+ When adding new Z39.50 providers, you must choose the record syntax.
82
+ Currently (March 2007), these are offered: "USMARC", "SUTRS", "UNIMARC".
83
+
84
+ "USMARC" works, "UNIMARC" works very limited, "SUTRS" doesn't work.
85
+ Choose a provider that supports "USMARC", or if none is available, one
86
+ that supports "UNIMARC".
87
+ MARC21 is the same as USMARC (at least for Alexandria).
88
+
89
+ You must choose also the charset encoding. Some are
90
+
91
+ UTF-8
92
+ ISO-8859-1 (also known as Latin-1, Western Europe)
93
+ ISO-8859-15
94
+ ISO_6937-2 (also known as Ala, Ansel)
95
+
96
+ The list of all possible charset encoding could be at
97
+ /usr/lib/gconv/gconv-modules
98
+
99
+
100
+ There is a plan to replace in future the provider British Library with
101
+ Copac, which includes British Library and others; see
102
+ http://copac.ac.uk/libraries/
103
+ http://en.wikipedia.org/wiki/Copac
104
+
105
+
106
+ ########################################################################
107
+
108
+
109
+ Question: A provider is not working, or only partial information it
110
+ retrieved from it, or there are books on the providers for which
111
+ Alexandria fails to retrieve information.
112
+
113
+ Answer: Yes, the provider may have changed the structure of its
114
+ web pages, and hence it is necessary to update the file for that
115
+ provider; this file is in the directory
116
+ /<something>/alexandria/book_providers/
117
+
118
+ It is also possible that the file handles only the "simple" cases, and the
119
+ case of your book is a "complex" one.
120
+
121
+ Try to get the development version at http://rubyforge.org/scm/?group_id=205
122
+ because the problem could be already fixed there.
123
+
124
+ Try to fix by yourself, and thereafter send us a patch.
125
+ Otherwise, report the bug, saying for which ISBN this problem happens.
126
+
127
+
128
+ ########################################################################
129
+
130
+
131
+ Question: I know another book provider
132
+
133
+ Answer: There are many other providers, see
134
+ http://en.wikipedia.org/wiki/Wikipedia:Book_sources
135
+ That page contains also links to the pages for book providers in other
136
+ languages.
137
+ If you now other providers, please add them to that lists.
138
+
139
+
140
+ ########################################################################
141
+
142
+
143
+ Question: Please add a new provider
144
+
145
+ Answer: First, choose wisely which provider(s) to ask. Do a
146
+ search on Internet of the various existing providers for your language
147
+ (see also, but not only, the previous question).
148
+
149
+ You may prefer providers that list also out-of-prints, instead of
150
+ providers that list only available books. It is also preferable a
151
+ provider that lists not only the books of your country, but also the
152
+ books of the neighbor countries.
153
+
154
+ Check whether the provider supports the Z39.50 protocol. This is probable
155
+ for public libraries, and very unlikely for commercial booksellers.
156
+ (If the Z39.50 protocol is supported, just go to "Preferences",
157
+ "Providers", "Advanced Settings", and add the provider there.)
158
+
159
+ It is useful if you choose a provider that allows to specify the ISBN in
160
+ the address, such as
161
+ http://www.internetbookshop.it/ame/ser/serdsp.asp?e=0060748222&shop=1
162
+
163
+ It is necessary that the HTML page of each provider is easily parsable,
164
+ that is, that the computer can easily find title, author(s), ISBN,
165
+ publisher, year of publication, binding.
166
+ For instance, the following piece of HTML page is easily parsable.
167
+
168
+ <span class="BDtitoloLibro">The Krusty Book</span>
169
+ <span class="BDauthLibro">by: Matt
170
+ Groening </span><span class="BDformatoLibro"><span
171
+ class="BDEticLibro">Format: </span>paperback</span><span
172
+ class="BDEticLibro">Publication date: </span><span
173
+ class="BDdataPubbLibro">10/23/2006</span><span
174
+ class="BDEticLibro">Publisher: </span><span
175
+ class="BDeditoreLibro">HarperCollins Publishers (Australia) Pty
176
+ Ltd</span><br /><span class="BDEticLibro">ISBN: </span><span
177
+ class="isbn">0-06-074822-2</span><br /><span class="BDEticLibro">ISBN
178
+ 13: </span><span class="isbn">978-0-06-074822-7</span></div>
179
+
180
+ It is not necessary that the provider reports for each book all the
181
+ information: title, author(s), ISBN, publisher, year of publication,
182
+ binding. In case that one of these is missing, Alexandria will not get
183
+ it.
184
+
185
+ It is easier, if the provider doesn't use cookies.
186
+
187
+ After the choice of the provider, try by yourself to modify the file for
188
+ an already implemented provider. Probably it may be only required that
189
+ you modify some regular expressions. Please send us the patch.
190
+ If you can program already, learning Ruby may require 20 minutes, see
191
+ http://www.ruby-lang.org/en/documentation/quickstart/
192
+
193
+ If you can't implement the new provider by yourself, write a 'feature
194
+ request' at http://rubyforge.org/tracker/?group_id=205
195
+ Please report some ISBNs of books that your provider knows and no other
196
+ provider implemented by Alexandria knows. Report also how are the words
197
+ title, author(s), ISBN, publisher, year of publication, binding in the
198
+ language used by the site. Report any other relevant information.
199
+
200
+
201
+ ########################################################################
202
+
203
+
204
+ Question: What are the ISBN, the ISBN-13, and the EAN?
205
+
206
+ Answer: For more information about ISBN, ISBN-13, EAN, see
207
+ http://en.wikipedia.org/wiki/International_Standard_Book_Number
208
+
209
+
210
+ ########################################################################
211
+
212
+
213
+ Question: Does Alexandria support the ISBN-13? Do I need to enter the
214
+ ISBN with or without dashes?
215
+
216
+ Answer: Alexandria support both the 10-digit and 13-digit ISBN, and the
217
+ dashes entered with the ISBN are ignored. Hence you can enter the book
218
+ in any of these equivalent forms:
219
+
220
+ 88-06-14930-X
221
+ 880614930X
222
+ 88-06-14930-x
223
+ 880614930x
224
+ 978-88-06-14930-7
225
+ 9788806149307
226
+
227
+
228
+ ########################################################################
229
+
230
+
231
+ Question: I entered the ISBN exactly as it shows on the book, and
232
+ Alexandria says that it is invalid.
233
+
234
+ Answer: You can check whether an ISBN is valid with
235
+ http://www.isbn-check.com/
236
+ Sometimes the ISBN reported on the book is wrong. Try to use the
237
+ 13-digit one, or to use the ISBN reported on the back of the title page,
238
+ or to search by title/author on a book provider, in order to find the
239
+ correct ISBN.
240
+
241
+
242
+ ########################################################################
243
+
244
+
245
+ Question: Where is stored the data about the books?
246
+
247
+ Answer: In the files ~/.alexandria/<library_name>/<ISBN>.yaml
248
+ These files are in YAML ( http://www.yaml.org/ ) format, and you can
249
+ edit them manually. The covers are in the files
250
+ ~/.alexandria/<library_name>/<ISBN>.cover
251
+ These files persist if you install or deinstall Alexandria.
252
+
253
+
254
+ ########################################################################
255
+
256
+
257
+ Question: I was enjoying Alexandria a lot and now it doesn't work any
258
+ more, I can't enter other books, or crashes when it starts.
259
+
260
+ Answer: This usually happens when there is some invalid data in one of
261
+ the .yaml files (see the question above). For one or more of the
262
+ latest books that you have entered, a bug happened, and now the data
263
+ stored is invalid and causes trouble. Try to find which book it was,
264
+ (please send also a bug report), and to delete or to move to another
265
+ directory that .yaml file or the whole ~/.alexandria directory.
266
+
267
+ This kind of problem may show only with the manual entered books, and
268
+ not with the books searched by ISBN.
269
+
270
+
271
+ ########################################################################
272
+
273
+
274
+ Question: can I catalog other objects?
275
+
276
+ Answer: Yes. Some kinds of object, such as illustrated calendars, or
277
+ geographical maps, have the ISBN, and can be treated as books.
278
+
279
+ For other objects, insert the EAN or bar-code number as ISBN. Provider
280
+ Thalia knows about music CDs, video DVDs, games and software, and can be
281
+ used to retrieve information about them. Other providers may be added in
282
+ future (possibly by you). Otherwise, the other objects may be added
283
+ manually.
284
+
285
+
286
+ ########################################################################
287
+
288
+
289
+ Question: I prefer to have the field "Author" as "Surname, Name" instead
290
+ of "Name Surname".
291
+
292
+ Answer: Alexandria relies on what the providers say:
293
+ some providers report "Surname Name": Webster.it, Ibs.it,
294
+ some "Name Surname": Bn, Thalia, Bol.it, Adlibris, L Siciliano, Worldcat,
295
+ and some without any rule: Amazon, Proxis.
296
+ You can change, in the preferences, the order in which the providers are
297
+ queried.
298
+
299
+ If Alexandria reports "Name Surname" with one provider, and in the HTML
300
+ page of that provider there is also (in a parsable way) "Surname, Name",
301
+ then this is a bug to be reported. In some of these cases, it would be
302
+ possible to get "Surname, Name", but the code would be complicated and
303
+ unreliable.
304
+
305
+ There is no algorithm that can decide, given the Author as a string,
306
+ which part of the string is the name and which part is the surname.
307
+ For instance, the name or the surname can be composed by more than one
308
+ word, or the author may be a collective author, or be a title or a
309
+ pseudonym, or in the author's country they may use that the surname is
310
+ the first word and the name is the second, or there may be the
311
+ patronymic, and so on.
312
+
313
+ For one provider, for books with more that one author, it's non-trivial
314
+ even to split the string of all the authors into strings "Name Surname" for
315
+ each author.
316
+
317
+ The only possibility to convert "Name Surname" to "Surname, Name" is to do
318
+ that by hand.
319
+
320
+ If you still believe that it is possible for a software to convert "Name
321
+ Surname" into "Surname, Name" in a reliable way, here are some cases of
322
+ real authors for you to try. (Some accented letters have been replaced by
323
+ the non accented ones.)
324
+
325
+ "Agente Italiano"
326
+ "Albert Sydney Hornby"
327
+ "Alexandre Dumas fils"
328
+ "Antoine de Saint-Exupery"
329
+ "Boston Women's Health Book Collective"
330
+ "Camilla"
331
+ "Central Intelligence Agency"
332
+ "Christiane F."
333
+ "Dario De Toffoli"
334
+ "Elaine St. James"
335
+ "Ernesto Che Guevara"
336
+ "Francois-Marie Arouet de Voltaire"
337
+ "Gaius Caesar Octavianus Augustus"
338
+ "Geographers A-Z Map Company"
339
+ "Gian Antonio Stella"
340
+ "H G Wells"
341
+ "John Paul II" (the surname is "Wojtyla")
342
+ "Jose Ortega y Gasset"
343
+ "Joseph K. von Eichendorff"
344
+ "Leonardo da Vinci" (he had no surname, "da Vinci" means "from the village
345
+ 'Vinci'")
346
+ "Leone Stella" (this only is fictional, from a comic movie, whose main
347
+ characters are some "Leone Stella" and a "Stella Leone"
348
+ "Levi Strauss"
349
+ "Lewis Carroll" ("Lewis" may be both name and surname, and here the
350
+ surname is "Dodgson")
351
+ "Lorenzo il Magnifico"
352
+ "Lucio Lombado Radice"
353
+ "Luigi Luca Cavalli-Sforza"
354
+ "Malcolm X"
355
+ "Mao Zedong"
356
+ "Martin Luther"
357
+ "Martin Luther King Jr."
358
+ "Mihail Sergeevic Gorbacev"
359
+ "Robert Van der Plas"
360
+ "Saint Augustine"
361
+ "Scuola di Barbiana"
362
+ "Subcomandante Insurgente Marcos"
363
+ "Vladimir Lenin" (the surname is "Ulyanov")
364
+
365
+ ########################################################################