# Website
#
# Douglas Thrift
#
# $Id$

from BeautifulSoup import MinimalSoup
import copy
import mechanize
import re

# XXX: hack to make Wells Fargo http-equiv redirects actually work
mechanize._http.AbstractHeadParser.head_elems = tuple(list(mechanize._http.AbstractHeadParser.head_elems) + ['body'])

class DuckSoup(MinimalSoup):
	MARKUP_MASSAGE = copy.copy(MinimalSoup.MARKUP_MASSAGE)

	MARKUP_MASSAGE.append((re.compile(r'''</?[a-z]+['"]\+['"][a-z]+'''), lambda match: ''))

class Website(object):
	Soup = DuckSoup

	def __init__(self, debug):
		self.browser = mechanize.Browser()
		self.browser.addheaders = [('User-agent', 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.19 (KHTML, like Gecko) Chrome/0.4.154.25 Safari/525.19')]

		if debug:
			self.browser.set_debug_http(True)

		self.browser.set_handle_equiv(True)
		self.browser.set_handle_redirect(True)
		self.browser.set_handle_refresh(True)
		self.browser.set_handle_robots(False)
