X-Git-Url: http://jaekl.net/gitweb/?p=quanlib.git;a=blobdiff_plain;f=main.rb;h=e1a52053b93f5c8c107d9178731d1169cfbd7388;hp=f3371b7d44daf55b9d65c3bbaf488b213d0f091b;hb=dfbc8c62ee2ee6e188609fc44e1a5ac4df40acf4;hpb=fffa1ed35ce07fdec65e1aa14a8f637fbdde9b10 diff --git a/main.rb b/main.rb index f3371b7..e1a5205 100644 --- a/main.rb +++ b/main.rb @@ -1,3 +1,4 @@ +require 'navigator' require 'page' require 'store' require 'walkdir' @@ -35,87 +36,9 @@ end puts 'Creating output...' -atoz_counts = {} +navigator = Navigator.new(@store) +navigator.write_atoz_pages() +navigator.write_series_listing() -('A'..'Z').each do |letter| - book_ids = @store.query_books_by_author(letter + '%') - puts 'Authors starting with "' + letter + '": ' + book_ids.length.to_s() + ' books.' - atoz_counts[letter] = book_ids.length - - page = Page.new(@store) - if 'A' != letter - page.back = ['../atoz/output_' + (letter.ord - 1).chr + '.html', 'Prev'] - end - if 'Z' != letter - page.forward = ['../atoz/output_' + (letter.ord + 1).chr + '.html', 'Next'] - end - page.output_dir = 'atoz' - page.index_file = 'output_' + letter + '.html' - page.title = "Authors starting with '" + letter + "'" - page.up = ['../atoz/index.html', 'Index'] - - page.write_html(book_ids) -end - - -ages = ['beginner', 'junior', 'ya', 'adult'] - -series_infos = [] - -ages.each do |age| - puts 'Series for "' + age + '" readers...' - - series_ids = @store.query_series_by_age(age) - - series_ids.each do |id| - series = @store.load_series(id) - book_ids = @store.query_books_by_series_id(id) - if nil != book_ids and book_ids.length > 0 - series_infos.push( [series, book_ids] ) - end - end - - for idx in 0 .. (series_infos.length - 1) do - #puts series.descr + ': ' + book_ids.length.to_s + ' books.' - - back = nil - fwd = nil - - if idx > 0 - back = series_infos[idx-1] - end - if idx < (series_infos.length - 1) - fwd = series_infos[idx+1] - end - - cur = series_infos[idx] - series = cur[0] - book_ids = cur[1] - - page = Page.new(@store) - if nil != back - page.back = [back[0].key + '.html', 'Back'] - end - if nil != fwd - page.forward = [fwd[0].key + '.html', 'Forward'] - end - page.output_dir = 'series' - page.index_file = series.key + '.html' - page.title = 'Series “' + series.descr + '” (' + book_ids.length.to_s + ' books)' - page.up = ['../atoz/index.html', 'Index'] - - page.write_html(book_ids) - end -end - -content = '' -('A'..'Z').each do |letter| - content += ' ' -end -page = Page.new(@store) -page.output_dir = 'atoz' -page.special = content -page.write_html( [] ) - @store.disconnect()
AuthorBooks
Starting with ' + letter + '' + atoz_counts[letter].to_s + '