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.
- checksums.yaml +5 -5
- data/.github/dependabot.yml +9 -0
- data/.gitignore +5 -2
- data/.hound.yml +2 -0
- data/.rubocop.yml +113 -45
- data/.rubocop_todo.yml +82 -170
- data/.simplecov +5 -1
- data/.travis.yml +45 -0
- data/.yardopts +1 -1
- data/CHANGELOG.md +60 -0
- data/ChangeLog.0 +33 -35
- data/Gemfile +6 -5
- data/INSTALL.md +164 -0
- data/README.md +52 -42
- data/Rakefile +95 -109
- data/TODO.md +9 -1
- data/alexandria-book-collection-manager.gemspec +52 -45
- data/bin/alexandria +31 -53
- data/doc/AUTHORS +61 -0
- data/doc/BUGS +31 -0
- data/doc/FAQ +365 -0
- data/doc/HACKING +19 -0
- data/doc/NEWS +341 -0
- data/doc/alexandria.1 +120 -0
- data/doc/cuecat_support.rdoc +67 -0
- data/doc/dependency_decisions.yml +80 -0
- data/lib/alexandria.rb +29 -37
- data/lib/alexandria/about.rb +52 -51
- data/lib/alexandria/book_providers.rb +94 -101
- data/lib/alexandria/book_providers/adlibris.rb +45 -85
- data/lib/alexandria/book_providers/amazon_aws.rb +105 -113
- data/lib/alexandria/book_providers/amazon_ecs_util.rb +293 -324
- data/lib/alexandria/book_providers/barnes_and_noble.rb +54 -53
- data/lib/alexandria/book_providers/douban.rb +29 -51
- data/lib/alexandria/book_providers/proxis.rb +42 -59
- data/lib/alexandria/book_providers/pseudomarc.rb +79 -99
- data/lib/alexandria/book_providers/siciliano.rb +68 -70
- data/lib/alexandria/book_providers/thalia.rb +46 -45
- data/lib/alexandria/book_providers/web.rb +17 -33
- data/lib/alexandria/book_providers/worldcat.rb +74 -102
- data/lib/alexandria/book_providers/z3950.rb +170 -174
- data/lib/alexandria/config.rb +5 -3
- data/lib/alexandria/console.rb +10 -21
- data/lib/alexandria/default_preferences.rb +37 -0
- data/lib/alexandria/execution_queue.rb +17 -15
- data/lib/alexandria/export_format.rb +47 -0
- data/lib/alexandria/export_library.rb +188 -302
- data/lib/alexandria/import_library.rb +114 -155
- data/lib/alexandria/import_library_csv.rb +46 -96
- data/lib/alexandria/library_collection.rb +79 -0
- data/lib/alexandria/library_sort_order.rb +45 -0
- data/lib/alexandria/library_store.rb +233 -0
- data/lib/alexandria/logging.rb +15 -19
- data/lib/alexandria/models/book.rb +15 -20
- data/lib/alexandria/models/library.rb +81 -363
- data/lib/alexandria/net.rb +7 -6
- data/lib/alexandria/preferences.rb +73 -91
- data/lib/alexandria/scanners.rb +4 -2
- data/lib/alexandria/scanners/{cuecat.rb → cue_cat.rb} +24 -20
- data/lib/alexandria/scanners/keyboard.rb +10 -8
- data/lib/alexandria/smart_library.rb +135 -171
- data/lib/alexandria/ui.rb +17 -15
- data/lib/alexandria/ui/about_dialog.rb +49 -0
- data/lib/alexandria/ui/{dialogs/acquire_dialog.rb → acquire_dialog.rb} +129 -152
- data/lib/alexandria/ui/alert_dialog.rb +64 -0
- data/lib/alexandria/ui/bad_isbns_dialog.rb +41 -0
- data/lib/alexandria/ui/{dialogs/barcode_animation.rb → barcode_animation.rb} +18 -15
- data/lib/alexandria/ui/{dialogs/book_properties_dialog.rb → book_properties_dialog.rb} +44 -61
- data/lib/alexandria/ui/{dialogs/book_properties_dialog_base.rb → book_properties_dialog_base.rb} +84 -89
- data/lib/alexandria/ui/builder_base.rb +9 -27
- data/lib/alexandria/ui/callbacks.rb +188 -186
- data/lib/alexandria/ui/columns.rb +2 -0
- data/lib/alexandria/ui/completion_models.rb +12 -23
- data/lib/alexandria/ui/confirm_erase_dialog.rb +33 -0
- data/lib/alexandria/ui/conflict_while_copying_dialog.rb +34 -0
- data/lib/alexandria/ui/dndable.rb +10 -8
- data/lib/alexandria/ui/error_dialog.rb +25 -0
- data/lib/alexandria/ui/export_dialog.rb +139 -0
- data/lib/alexandria/ui/icons.rb +49 -65
- data/lib/alexandria/ui/iconview.rb +15 -13
- data/lib/alexandria/ui/iconview_tooltips.rb +43 -58
- data/lib/alexandria/ui/import_dialog.rb +157 -0
- data/lib/alexandria/ui/init.rb +23 -33
- data/lib/alexandria/ui/keep_bad_isbn_dialog.rb +36 -0
- data/lib/alexandria/ui/libraries_combo.rb +18 -14
- data/lib/alexandria/ui/listview.rb +77 -88
- data/lib/alexandria/ui/main_app.rb +26 -26
- data/lib/alexandria/ui/misc_dialogs.rb +10 -0
- data/lib/alexandria/ui/multi_drag_treeview.rb +30 -41
- data/lib/alexandria/ui/{dialogs/new_book_dialog.rb → new_book_dialog.rb} +168 -215
- data/lib/alexandria/ui/new_book_dialog_manual.rb +139 -0
- data/lib/alexandria/ui/new_provider_dialog.rb +100 -0
- data/lib/alexandria/ui/new_smart_library_dialog.rb +74 -0
- data/lib/alexandria/ui/preferences_dialog.rb +313 -0
- data/lib/alexandria/ui/provider_preferences_base_dialog.rb +95 -0
- data/lib/alexandria/ui/provider_preferences_dialog.rb +35 -0
- data/lib/alexandria/ui/really_delete_dialog.rb +53 -0
- data/lib/alexandria/ui/{sidepane.rb → sidepane_manager.rb} +62 -72
- data/lib/alexandria/ui/skip_entry_dialog.rb +33 -0
- data/lib/alexandria/ui/smart_library_properties_dialog.rb +60 -0
- data/lib/alexandria/ui/{dialogs/smart_library_properties_dialog_base.rb → smart_library_properties_dialog_base.rb} +96 -172
- data/lib/alexandria/ui/smart_library_rule_box.rb +119 -0
- data/lib/alexandria/ui/sound.rb +13 -13
- data/lib/alexandria/ui/ui_manager.rb +262 -283
- data/lib/alexandria/undo_manager.rb +3 -0
- data/lib/alexandria/version.rb +6 -19
- data/lib/alexandria/web_themes.rb +24 -21
- data/po/Makefile +2 -2
- data/po/cs.po +993 -880
- data/po/cy.po +957 -874
- data/po/de.po +990 -869
- data/po/el.po +989 -869
- data/po/es.po +985 -865
- data/po/fr.po +986 -870
- data/po/ga.po +907 -823
- data/po/gl.po +981 -865
- data/po/it.po +986 -868
- data/po/ja.po +969 -853
- data/po/mk.po +983 -863
- data/po/nb.po +979 -863
- data/po/nl.po +983 -864
- data/po/pl.po +1020 -969
- data/po/pt.po +988 -861
- data/po/pt_BR.po +984 -868
- data/po/ru.po +992 -873
- data/po/sk.po +987 -869
- data/po/sv.po +977 -861
- data/po/uk.po +975 -865
- data/po/zh_TW.po +976 -860
- data/schemas/alexandria.schemas +25 -3
- data/share/alexandria/glade/acquire_dialog__builder.glade +15 -12
- data/share/alexandria/glade/book_properties_dialog__builder.glade +171 -299
- data/share/alexandria/glade/main_app__builder.glade +24 -33
- data/share/alexandria/glade/new_book_dialog__builder.glade +27 -59
- data/share/alexandria/glade/preferences_dialog__builder.glade +250 -290
- data/share/gnome/help/alexandria/C/introduction.xml +0 -8
- data/share/gnome/help/alexandria/C/searching.xml +1 -1
- data/share/gnome/help/alexandria/C/smart-libraries.xml +2 -2
- data/share/gnome/help/alexandria/C/working-with-libraries.xml +1 -1
- data/share/gnome/help/alexandria/fr/alexandria.xml +1 -1
- data/share/gnome/help/alexandria/ja/introduction.xml +0 -8
- data/share/gnome/help/alexandria/ja/smart-libraries.xml +1 -1
- data/spec/alexandria/book_providers/world_cat_provider_spec.rb +160 -0
- data/spec/alexandria/book_providers_spec.rb +77 -210
- data/spec/alexandria/book_spec.rb +16 -12
- data/spec/alexandria/console_spec.rb +27 -0
- data/spec/alexandria/export_library_spec.rb +130 -0
- data/spec/alexandria/library_spec.rb +130 -172
- data/spec/alexandria/library_store_spec.rb +37 -0
- data/spec/alexandria/preferences_spec.rb +46 -17
- data/spec/alexandria/scanners/cue_cat_spec.rb +52 -0
- data/spec/alexandria/smart_library_spec.rb +32 -25
- data/spec/alexandria/ui/about_dialog_spec.rb +14 -0
- data/spec/alexandria/ui/acquire_dialog_spec.rb +14 -0
- data/spec/alexandria/ui/alert_dialog_spec.rb +16 -0
- data/spec/alexandria/ui/bad_isbns_dialog_spec.rb +14 -0
- data/spec/alexandria/ui/book_properties_dialog_spec.rb +17 -0
- data/spec/alexandria/ui/confirm_erase_dialog_spec.rb +14 -0
- data/spec/alexandria/ui/conflict_while_copying_dialog_spec.rb +16 -0
- data/spec/alexandria/ui/error_dialog_spec.rb +14 -0
- data/spec/alexandria/ui/export_dialog_spec.rb +15 -0
- data/spec/alexandria/ui/icons_spec.rb +26 -0
- data/spec/alexandria/ui/iconview_spec.rb +9 -21
- data/spec/alexandria/ui/import_dialog_spec.rb +41 -0
- data/spec/alexandria/ui/keep_bad_isbn_dialog_spec.rb +17 -0
- data/spec/alexandria/ui/main_app_spec.rb +8 -33
- data/spec/alexandria/ui/new_book_dialog_manual_spec.rb +15 -0
- data/spec/alexandria/ui/new_book_dialog_spec.rb +22 -0
- data/spec/alexandria/ui/new_provider_dialog_spec.rb +30 -0
- data/spec/alexandria/ui/new_smart_library_dialog_spec.rb +39 -0
- data/spec/alexandria/ui/preferences_dialog_spec.rb +14 -0
- data/spec/alexandria/ui/provider_preferences_dialog_spec.rb +34 -0
- data/spec/alexandria/ui/really_delete_dialog_spec.rb +16 -0
- data/spec/alexandria/ui/sidepane_manager_spec.rb +15 -0
- data/spec/alexandria/ui/skip_entry_dialog_spec.rb +14 -0
- data/spec/alexandria/ui/smart_library_properties_dialog_spec.rb +32 -0
- data/spec/alexandria/ui/sound_spec.rb +4 -2
- data/spec/alexandria/ui/ui_manager_spec.rb +45 -20
- data/spec/end_to_end/basic_run_spec.rb +57 -0
- data/spec/spec_helper.rb +66 -33
- data/tasks/setup.rb +5 -3
- data/tasks/spec.rake +18 -3
- data/util/rake/fileinstall.rb +38 -40
- data/util/rake/gettextgenerate.rb +15 -70
- data/util/rake/omfgenerate.rb +10 -10
- metadata +176 -60
- data/INSTALL.rdoc +0 -148
- data/dogtail/basic_run_test.py +0 -9
- data/lib/alexandria/book_providers/bol_it.rb +0 -160
- data/lib/alexandria/book_providers/deastore.rb +0 -273
- data/lib/alexandria/book_providers/ibs_it.rb +0 -147
- data/lib/alexandria/book_providers/mcu.rb +0 -169
- data/lib/alexandria/book_providers/renaud.rb +0 -140
- data/lib/alexandria/book_providers/webster_it.rb +0 -167
- data/lib/alexandria/ui/dialogs/about_dialog.rb +0 -59
- data/lib/alexandria/ui/dialogs/alert_dialog.rb +0 -70
- data/lib/alexandria/ui/dialogs/bad_isbns_dialog.rb +0 -43
- data/lib/alexandria/ui/dialogs/export_dialog.rb +0 -171
- data/lib/alexandria/ui/dialogs/import_dialog.rb +0 -196
- data/lib/alexandria/ui/dialogs/misc_dialogs.rb +0 -85
- data/lib/alexandria/ui/dialogs/new_book_dialog_manual.rb +0 -154
- data/lib/alexandria/ui/dialogs/new_smart_library_dialog.rb +0 -74
- data/lib/alexandria/ui/dialogs/preferences_dialog.rb +0 -578
- data/lib/alexandria/ui/dialogs/smart_library_properties_dialog.rb +0 -57
- data/spec/alexandria/scanners/cuecat_spec.rb +0 -65
- data/spec/alexandria/ui/dialogs_spec.rb +0 -94
- data/spec/alexandria/ui/sidepane_spec.rb +0 -27
- data/spec/alexandria/ui/ui_utilities_spec.rb +0 -60
- data/spec/alexandria/utilities_spec.rb +0 -50
- data/tasks/dogtail.rake +0 -4
data/bin/alexandria
CHANGED
@@ -1,55 +1,33 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
|
+
# frozen_string_literal: true
|
2
3
|
|
3
|
-
#
|
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
|
-
#
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
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
|
-
|
24
|
-
|
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 =
|
31
|
-
opts.on(
|
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
|
-
|
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(
|
26
|
+
opts.on("-h", "--help", "Show help options") do
|
49
27
|
puts opts
|
50
28
|
exit
|
51
29
|
end
|
52
|
-
opts.on(
|
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 =>
|
61
|
-
|
62
|
-
-----------------------
|
63
|
-
Alexandria just crashed
|
64
|
-
-----------------------
|
65
|
-
Timestamp: #{Time.now}
|
66
|
-
Message: #{
|
67
|
-
Backtrace:
|
68
|
-
#{
|
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
|
data/doc/AUTHORS
ADDED
@@ -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)
|
data/doc/BUGS
ADDED
@@ -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
|
+
########################################################################
|