#!/usr/bin/env python

import formatter
import htmllib
import re

import pygame

class renderobject:
	def __init__(self):
		title = ""
		text = ""

class myparser(htmllib.HTMLParser):
	def __init__(self):
		f = formatter.NullFormatter()
		htmllib.HTMLParser.__init__(self, f)
		self.state = ""
		self.object = None

	def parse(self, filename, object):
		contents = open(filename).read()
		contents = re.sub("\\n", " ", contents)

		self.object = object

		self.feed(contents)
		self.close()

	def debug(self, str):
		print str

	def handle_data(self, data):
		self.debug(data)
		if self.state == "title":
			self.object.title = data
		elif self.state == "body":
			self.object.text = data

	def start_html(self, attr):
		self.debug("<html>")
		pass

	def end_html(self):
		self.debug("</html>")
		pass

	def start_body(self, attr):
		self.debug("<body>")
		self.state = "body"
		pass

	def end_body(self):
		self.debug("</body>")
		self.state = ""
		pass

	def start_head(self, attr):
		self.debug("<head>")
		pass

	def end_head(self):
		self.debug("</head>")
		pass

	def start_title(self, attr):
		self.debug("<title>")
		self.state = "title"
		pass

	def end_title(self):
		self.debug("</title>")
		self.state = ""
		pass

parser = myparser()
object = renderobject()

parser.parse("example.html", object)

pygame.init()
pygame.display.set_caption(object.title)
screen = pygame.display.set_mode((800, 600))

page = pygame.Surface((800, 600))

font = pygame.font.Font(None, 48)
text = font.render(object.text, 1, (255, 255, 255))
page.blit(text, (100, 100))

screen.blit(page, (0, 0))

pygame.display.update()

loop = 1
while loop:
	pygame.event.pump()
	key = pygame.key.get_pressed()
	if key[pygame.K_ESCAPE]:
		loop = 0



