# Wells Fargo
#
# Douglas Thrift
#
# $Id$

import bank
from datetime import date, datetime
import re
import website

class Bank(website.Website, bank.Bank):
	DUE_ON = re.compile(r'DUE ON (\d{2}/\d{2}/\d{2})')

	def __init__(self, config, debug):
		website.Website.__init__(self, debug)
		bank.Bank.__init__(self, config)

		self.browser.open('https://www.wellsfargo.com/')
		self.browser.select_form(name = 'signon')

		self.browser['userid'] = self._username()
		self.browser['password'] = self._password()

		self.browser.submit()

	def due(self, account):
		try:
			due_on = self.Soup(self._follow_link(text_regex = account)).find(text = self.DUE_ON)

			if due_on is None:
				return date.fromtimestamp(0)

			return datetime.strptime(self.DUE_ON.search(due_on).group(1), '%m/%d/%y').date()
		finally:
			self._back()
