/
books_pages.py
167 lines (146 loc) · 5.81 KB
/
books_pages.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
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_ln = ""
last_author_fn = ""
for b in self.book_list:
if (b.last_name[0] == last_author_ln) and (b.first_name[0] == last_author_fn):
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_ln = b.last_name[0]
last_author_fn = b.first_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=books.html>Back to Aviation Books Top Page</a></center>\n")
self.f.write ("<hr>\n")
Html_Page.generate_trailer (self)