puts 'Creating output...'
-counts = {}
+atoz_counts = {}
('A'..'Z').each do |letter|
book_ids = @store.query_books_by_author(letter + '%')
puts 'Authors starting with "' + letter + '": ' + book_ids.length.to_s() + ' books.'
- counts[letter] = book_ids.length
+ atoz_counts[letter] = book_ids.length
page = Page.new(@store)
if 'A' != letter
- page.back = ['../output_' + (letter.ord - 1).chr + '/index.html', 'Prev']
+ page.back = ['../atoz/output_' + (letter.ord - 1).chr + '.html', 'Prev']
end
if 'Z' != letter
- page.forward = ['../output_' + (letter.ord + 1).chr + '/index.html', 'Next']
+ page.forward = ['../atoz/output_' + (letter.ord + 1).chr + '.html', 'Next']
end
- page.output_dir = 'output_' + letter
+ page.output_dir = 'atoz'
+ page.index_file = 'output_' + letter + '.html'
page.title = "Authors starting with '" + letter + "'"
- page.up = ['../output/index.html', 'Index']
+ 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 = '<table><tr><th>Author</th><th>Books</th></tr>'
('A'..'Z').each do |letter|
- content += ' <tr><td><a href="../output_' + letter + '/index.html">Starting with ' + letter + '</a></td><td>' + counts[letter].to_s + '</td></tr>'
+ content += ' <tr><td><a href="../atoz/output_' + letter + '.html">Starting with ' + letter + '</a></td><td>' + atoz_counts[letter].to_s + '</td></tr>'
end
page = Page.new(@store)
-page.output_dir = 'output'
+page.output_dir = 'atoz'
page.special = content
page.write_html( [] )