URL.open and URL.go can take 'params' argument

This commit is contained in:
Romain Bignon 2014-03-20 07:48:23 +01:00
commit 0a53824104

View file

@ -26,12 +26,10 @@ from copy import deepcopy
from cStringIO import StringIO from cStringIO import StringIO
import lxml.html as html import lxml.html as html
from weboob.tools.json import json
from weboob.tools.ordereddict import OrderedDict from weboob.tools.ordereddict import OrderedDict
from weboob.tools.regex_helper import normalize from weboob.tools.regex_helper import normalize
from weboob.tools.parsers.lxmlparser import LxmlHtmlParser
from weboob.tools.parsers.jsonparser import JsonParser
from weboob.tools.log import getLogger from weboob.tools.log import getLogger
from .browser import DomainBrowser from .browser import DomainBrowser
@ -84,7 +82,7 @@ class URL(object):
return self.go(**kwargs) return self.go(**kwargs)
def go(self, **kwargs): def go(self, params=None, data=None, **kwargs):
""" """
Request to go on this url. Request to go on this url.
@ -93,10 +91,10 @@ class URL(object):
>>> url = URL('http://exawple.org/(?P<pagename>).html') >>> url = URL('http://exawple.org/(?P<pagename>).html')
>>> url.stay_or_go(pagename='index') >>> url.stay_or_go(pagename='index')
""" """
r = self.browser.location(self.build(**kwargs)) r = self.browser.location(self.build(**kwargs), params=params, data=data)
return r.page or r return r.page or r
def open(self, data=None, **kwargs): def open(self, params=None, data=None, **kwargs):
""" """
Request to open on this url. Request to open on this url.
@ -106,9 +104,9 @@ class URL(object):
:type url: str or dict or None :type url: str or dict or None
>>> url = URL('http://exawple.org/(?P<pagename>).html') >>> url = URL('http://exawple.org/(?P<pagename>).html')
>>> url.open(pagename='index) >>> url.open(pagename='index')
""" """
r = self.browser.open(self.build(**kwargs), data=data) r = self.browser.open(self.build(**kwargs), params=params, data=data)
return r.page or r return r.page or r
def build(self, **kwargs): def build(self, **kwargs):
@ -402,8 +400,7 @@ class Form(OrderedDict):
class JsonPage(BasePage): class JsonPage(BasePage):
def __init__(self, browser, response, *args, **kwargs): def __init__(self, browser, response, *args, **kwargs):
super(JsonPage, self).__init__(browser, response, *args, **kwargs) super(JsonPage, self).__init__(browser, response, *args, **kwargs)
parser = JsonParser() self.doc = json.loads(response.text)
self.doc = parser.parse(StringIO(response.content), response.encoding)
class HTMLPage(BasePage): class HTMLPage(BasePage):
""" """