Guest User

Untitled

a guest
Feb 22nd, 2018
276
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.01 KB | None | 0 0
  1. import json
  2. import sys
  3. import traceback
  4.  
  5.  
  6. def main():
  7. PageMaker.make_welcome_page('hyuki@hyuki.com', 'welcome.html')
  8. PageMaker.make_welcome_page('mamoru@hyuki.com', 'welcome2.html')
  9.  
  10.  
  11. class PageMaker:
  12. @classmethod
  13. def make_welcome_page(cls, mailaddr, filename):
  14. try:
  15. maildict = Database.get_json('maildata')
  16. username = maildict[mailaddr]
  17. writer = HtmlWriter(open(filename, 'w'))
  18. writer.title('Welcom to {}s page!'.format(username))
  19. writer.paragraph(username + 'のページへようこそ。')
  20. writer.paragraph('メール待っています。')
  21. writer.mailto(mailaddr, username)
  22. writer.close()
  23. print('{} is created for {} ({})'.format(filename, mailaddr, username))
  24. except Exception as e:
  25. _, _, tb = sys.exc_info()
  26. traceback.print_tb(tb)
  27.  
  28.  
  29. class Database:
  30. def __init__(self):
  31. pass
  32.  
  33. @classmethod
  34. def get_json(cls, dbname):
  35. filename = dbname + '.json'
  36. data = open(filename, 'r')
  37. try:
  38. j = json.load(data)
  39. except Exception:
  40. print('Warning: ' + filename + ' is not found.')
  41. return j
  42.  
  43.  
  44. class HtmlWriter:
  45. def __init__(self, writer):
  46. self.writer = writer
  47.  
  48. def title(self, title):
  49. self.writer.write('<html>\n')
  50. self.writer.write('<head>')
  51. self.writer.write('<title>{}</title>'.format(title))
  52. self.writer.write('</head>\n')
  53. self.writer.write('<body>\n')
  54. self.writer.write('<h1>{}</h1>\n'.format(title))
  55.  
  56. def paragraph(self, msg):
  57. self.writer.write('<p>{}</p>\n'.format(msg))
  58.  
  59. def link(self, href, caption):
  60. self.writer.write('<a href="{}">{}</a>'.format(href, caption))
  61.  
  62. def mailto(self, mailaddr, username):
  63. self.link('mmailto:' + mailaddr, username)
  64.  
  65. def close(self):
  66. self.writer.write('</body>\n')
  67. self.writer.write('</html>\n')
  68. self.writer.close()
  69.  
  70.  
  71. if __name__ == '__main__':
  72. main()
Add Comment
Please, Sign In to add comment