X-Git-Url: http://jaekl.net/gitweb/?p=quanlib.git;a=blobdiff_plain;f=main.rb;h=e294b4a15e3391a0e4b84d41235b2eee1265ca31;hp=596e11ff526fec0f09227bda8bcad927ab163180;hb=HEAD;hpb=4b53af822cda819dd82d0d3e7ed066c2966ae4bf diff --git a/main.rb b/main.rb index 596e11f..e294b4a 100644 --- a/main.rb +++ b/main.rb @@ -1,92 +1,56 @@ -require 'store' -require 'walkdir' +require_relative 'navigator' +require_relative 'page' +require_relative 'store' +require_relative 'walk_dir' -outputDir = 'output' +@outputDir = 'output' -books = [] -imageCount = 0 +@config_file = 'quanlib.ini' +@skip_class = false def handleArg(arg) - if "--purge" == arg + if arg.start_with?("--config=") + @config_file = arg[9..-1] + puts 'Using config file "' + @config_file + '".' + elsif "--purge" == arg puts 'Purging database...' @store.dropSchema() + if File.exists?(@store.unclassified_csv) + File.delete(@store.unclassified_csv) + end + elsif "--skip-class" == arg + puts 'Skipping load of classification table.' + @skip_class = true elsif arg.start_with?("--") abort('ERROR: Unrecognized option "' + arg + '".') end end -@store = Store.new() +@store = Store.new(@config_file) @store.connect() for arg in ARGV handleArg(arg) end -@store.init_db() +@store.init_db(@skip_class) for arg in ARGV if ! arg.start_with?("--") puts 'Scanning directory "' + arg + '"...' - w = WalkDir.new(@store, arg) - books += (w.books) + w = WalkDir.new(@config_file, arg) + w.books end end -puts 'Creating output...' - -if ! Dir.exist?(outputDir) - Dir.mkdir(outputDir) -end - -open(outputDir + '/index.html', 'w') do |fd| - fd.puts '' - fd.puts ' ' - fd.puts ' ' - fd.puts ' Books' - fd.puts ' ' - fd.puts ' ' - fd.puts ' ' - - for book in books - image = nil - if nil != book.cover - imageCount += 1 - (path, mimeType) = book.cover.write_image(outputDir, 'image' + imageCount.to_s) - image = '' - else - image = '(No cover image)' - end +@store.cross_reference_lists - fd.puts '
' - fd.puts ' ' +puts 'Creating output...' - heading = book.heading() - description = book.description() - if nil != description - fd.puts ' ' - else - fd.puts ' ' - end - - fd.puts '
' + image + '' + heading + '

' + heading + '

' + description + '

' + heading + '
' - end - - fd.puts " " - fd.puts " " - fd.puts "" -end +navigator = Navigator.new(@store) +navigator.write_atoz_pages() +navigator.write_series_listing() +navigator.write_dewey() @store.disconnect() +