4 |
|
# |
5 |
|
# $Id$ |
6 |
|
|
7 |
< |
from __future__ import with_statement |
7 |
> |
import bank |
8 |
|
from ClientForm import FormParser |
9 |
– |
import common |
9 |
|
from datetime import datetime |
10 |
|
from mechanize import LinkNotFoundError |
11 |
|
import re |
43 |
|
except ValueError: |
44 |
|
pass |
45 |
|
|
46 |
< |
class Bank(website.Website, common.Bank): |
47 |
< |
PAYMENT_DUE = re.compile(r'[A-Z][a-z]{2}\. \d{1,2}, \d{4}') |
46 |
> |
class Bank(website.Website, bank.Bank): |
47 |
> |
PAYMENT_DUE = re.compile(r'([A-Z][a-z]{2})\.?( \d{1,2}, \d{4})') |
48 |
|
|
49 |
< |
def __init__(self, username, password, debug): |
49 |
> |
def __init__(self, config, debug): |
50 |
|
website.Website.__init__(self, debug, factory = website.Factory(_FormParser)) |
51 |
+ |
bank.Bank.__init__(self, config) |
52 |
|
|
53 |
|
self.browser.open('http://www.shellmc.accountonline.com/') |
54 |
|
self.browser.select_form(name = 'LOGIN') |
55 |
|
|
56 |
< |
self.browser['USERNAME'] = username |
57 |
< |
self.browser['PASSWORD'] = password |
56 |
> |
self.browser['USERNAME'] = self._username() |
57 |
> |
self.browser['PASSWORD'] = self._password() |
58 |
|
|
59 |
|
self.browser.submit() |
60 |
|
|
81 |
|
|
82 |
|
def due(self, account): |
83 |
|
try: |
84 |
< |
return datetime.strptime(self.PAYMENT_DUE.search(self.Soup(self._follow_link(text_regex = account)).find(text = re.compile('Payment Due')).findNext(text = self.PAYMENT_DUE)).group(0), '%b. %d, %Y').date() |
84 |
> |
return datetime.strptime(''.join(self.PAYMENT_DUE.search(self.Soup(self._follow_link(text_regex = account)).find(text = re.compile('Payment Due')).findNext(text = self.PAYMENT_DUE)).group(1, 2)), '%b %d, %Y').date() |
85 |
|
finally: |
86 |
|
self._back() |