get maximum history

This commit is contained in:
Romain Bignon 2013-02-23 13:15:05 +01:00
commit 4df089ee1b
2 changed files with 27 additions and 18 deletions

View file

@ -22,9 +22,6 @@
from weboob.tools.browser import BaseBrowser, BrowserIncorrectPassword
from .pages import LoginPage, AccountsList, AccountHistory, UpdateInfoPage
from datetime import date
from dateutil.relativedelta import relativedelta
__all__ = ['Boursorama']
@ -83,21 +80,17 @@ class Boursorama(BaseBrowser):
return None
def get_history(self, account):
self.location(account._link_id)
if not self.is_on_page(AccountHistory):
raise NotImplementedError()
link = account._link_id
operations = self.page.get_operations()
# load last month as well
target = date.today() - relativedelta(months=1)
self.location(account._link_id + ("&month=%d&year=%d" % (target.month, target.year)))
operations += self.page.get_operations()
# and the month before, just in case you're greedy
target = date.today() - relativedelta(months=2)
self.location(account._link_id + ("&month=%d&year=%d" % (target.month, target.year)))
operations += self.page.get_operations()
while link is not None:
self.location(link)
if not self.is_on_page(AccountHistory):
raise NotImplementedError()
return operations
for tr in self.page.get_operations():
yield tr
link = self.page.get_next_url()
def transfer(self, from_id, to_id, amount, reason=None):
raise NotImplementedError()

View file

@ -19,6 +19,7 @@
# along with weboob. If not, see <http://www.gnu.org/licenses/>.
from urlparse import urlparse
from datetime import date
import re
@ -79,3 +80,18 @@ class AccountHistory(BasePage):
def get_operations(self):
return self.operations
def get_next_url(self):
items = self.document.getroot().cssselect('ul.mainmenu li')
current = False
for li in reversed(items):
if li.attrib.get('class', '') == 'selected':
current = True
elif current:
a = li.find('a')
if 'year' in a.attrib.get('href', ''):
url = urlparse(self.url)
return url.path + a.attrib['href']
else:
return None