from html_page import Html_Page
#
# Generate HTML book page indexed by author
#
class Authors_Page (Html_Page):
def __init__ (self):
Html_Page.__init__ (self, "Aviation Books: by Author",
"<i>Aviation Books: indexed by Author</i>")
self.f = open ("books_by_author.html", "w")
print "Authors page in--> " + self.f.name
def set_book_list (self, list):
self.book_list = list
def generate_body (self):
#
# Generate a table
#
self.f.write ("<hr>\n")
self.f.write ("<center>\n")
self.f.write ("<table border=0 width=" + '"' + "80%" + '"' + ">\n")
last_author = ""
for b in self.book_list:
if (b.last_name[0] == last_author):
line = "<tr><td></td>"
else:
line = "<tr><td>"
# Print authors names
i = 0
while i < len (b.last_name):
if i > 0:
line = line + " and "
line = line + b.last_name[i] + ", " + b.first_name[i]
i = i + 1
line = line +" </td>\n"
last_author = b.last_name[0]
self.f.write (line)
line = "<td>"
if len(b.url) != 0:
line = line + "<a href=" + b.url + "><i>" + '"' + b.title + '"' + "</i></a>"
else:
line = line + "<i>" + '"' + b.title + '"' + "</i>"
line = line + "</td></tr>\n"
self.f.write (line)
self.f.write ("</table>\n </center>\n<hr>\n")
count = len (self.book_list)
self.f.write ("<center>There are " + ("%1d" % count) + " books in the list</center>\n")
def generate_trailer (self):
self.f.write ("<hr>\n")
self.f.write ("<center><a href=books.html>Back to Aviation Books Top Page</a></center>\n")
self.f.write ("<hr>\n")
Html_Page.generate_trailer (self)
#
# Page index by Titles
#
class Titles_Page (Html_Page):
def __init__ (self):
Html_Page.__init__ (self, "Aviation Books: by Title",
"<i>Aviation Books: indexed by Title</i>")
self.f = open ("books_by_title.html", "w")
print "Titles page in --> " + self.f.name
def set_book_list (self, list):
self.book_list = list
def generate_body (self):
#
# Generate table
#
self.f.write ("<hr>\n")
self.f.write ("<center>\n")
self.f.write ("<table border=0 width=" + '"' + "80%" + '"' + ">\n")
for b in self.book_list:
line = "<tr><td><i>"
if len(b.url) != 0:
line = line + "<a href=" + b.url + "><i>" + '"' + b.title + '"' + "</i></a>"
else:
line = line + "<i>" + '"' + b.title + '"' + "</i>"
line = line + "</td><td>"
# Print authors names
i = 0
while i < len (b.last_name):
if i > 0:
line = line + " and "
line = line + b.first_name[i] + " " + b.last_name[i]
i = i + 1
line = line + "</td></tr>\n"
self.f.write (line)
self.f.write ("</table>\n")
self.f.write ("</center>\n")
self.f.write ("<hr>\n")
count = len (self.book_list)
self.f.write ("<center>There are " + ("%1d" % count) + " books in the list</center>\n")
def generate_trailer (self):
self.f.write ("<hr>\n")
self.f.write ("<center><a href=books.html>Back to Aviation Books Top Page</a></center>\n")
self.f.write ("<hr>\n")
Html_Page.generate_trailer (self)
#
# Create a page indexed by subject
#
class Subjects_Page (Html_Page):
def __init__ (self):
Html_Page.__init__ (self, "Aviation Books: by Subject",
"<i>Aviation Books: indexed by Subject</i>")
self.f = open ("books_by_subject.html", "w")
print "Subject page in --> " + self.f.name
def set_book_list (self, list):
self.book_list = list
def generate_body (self):
#
# Generate table
#
self.f.write ("<hr>\n")
self.f.write ("<center>\n")
self.f.write ("<table border=0 width=" + '"' + "100%" + '"' + ">\n")
last_subject = "";
for b in self.book_list:
if (last_subject != b.subject):
line = "<tr><td><b>" + b.subject + "</b></td>"
last_subject = b.subject
else:
line = "<tr><td></td>"
line = line + "<td><i>"
if len(b.url) != 0:
line = line + "<a href=" + b.url + "><i>" + '"' + b.title + '"' + "</i></a>"
else:
line = line + "<i>" + '"' + b.title + '"' + "</i>"
line = line + "</td><td>"
# Authors
i = 0
while i < len (b.last_name):
if i > 0:
line = line + " and "
line = line + b.first_name[i] + " " + b.last_name[i]
i = i + 1
line = line + "</td></tr>\n"
self.f.write (line)
self.f.write ("</table>\n")
self.f.write ("</center>\n")
self.f.write ("<hr>\n")
count = len (self.book_list)
self.f.write ("<center>There are " + ("%1d" % count) + " books in the list</center>\n")
def generate_trailer (self):
self.f.write ("<hr>\n")
self.f.write ("<center><a href="http://www.netlabs.net/hp/richieb/books.html">Back to Aviation Books Top Page</a></center>\n")
self.f.write ("<hr>\n")
Html_Page.generate_trailer (self)
Copyright © 1997, Richie Bielak
Published in Issue 19 of the Linux Gazette, July 1997