new method BaseBrowser.buildurl()
This commit is contained in:
parent
b23de78b47
commit
0dbf00f7ac
3 changed files with 24 additions and 5 deletions
|
|
@ -22,7 +22,6 @@ from weboob.tools.browser import BaseBrowser
|
|||
|
||||
from .pages.index import IndexPage, LoginPage
|
||||
from .pages.torrents import TorrentsPage
|
||||
import urllib
|
||||
|
||||
|
||||
__all__ = ['GazelleBrowser']
|
||||
|
|
@ -61,7 +60,7 @@ class GazelleBrowser(BaseBrowser):
|
|||
return self.location('%s://%s/login.php' % (self.PROTOCOL, self.DOMAIN))
|
||||
|
||||
def iter_torrents(self, pattern):
|
||||
self.location('/torrents.php?searchstr=%s' % urllib.quote_plus(pattern))
|
||||
self.location(self.buildurl('/torrents.php', searchstr=pattern))
|
||||
|
||||
assert self.is_on_page(TorrentsPage)
|
||||
return self.page.iter_torrents()
|
||||
|
|
|
|||
|
|
@ -18,8 +18,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|||
|
||||
"""
|
||||
|
||||
import urllib
|
||||
|
||||
from weboob.tools.browser import BaseBrowser
|
||||
|
||||
from .pages.index import IndexPage
|
||||
|
|
@ -47,7 +45,7 @@ class YoupornBrowser(BaseBrowser):
|
|||
if not pattern:
|
||||
self.home()
|
||||
else:
|
||||
self.location('/search/%s?query=%s' % (sortby, urllib.quote_plus(pattern)))
|
||||
self.location(self.buildurl('/search/%s' % sortby, query=pattern))
|
||||
|
||||
assert self.is_on_page(IndexPage)
|
||||
return self.page.iter_videos()
|
||||
|
|
|
|||
|
|
@ -19,6 +19,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|||
"""
|
||||
|
||||
import mechanize
|
||||
import urllib
|
||||
import urllib2
|
||||
import ClientForm
|
||||
import re
|
||||
|
|
@ -305,6 +306,27 @@ class BaseBrowser(mechanize.Browser):
|
|||
if self._cookie:
|
||||
self._cookie.save()
|
||||
|
||||
def buildurl(self, base, *args, **kwargs):
|
||||
"""
|
||||
Build an URL and escape arguments.
|
||||
You can give a serie of tuples in *args (and the order is keept), or
|
||||
a dict in **kwargs (but the order is lost).
|
||||
|
||||
Example:
|
||||
>>> buildurl('/blah.php', ('a', '&'), ('c', '=')
|
||||
'/blah.php?a=%26&b=%3D'
|
||||
>>> buildurl('/blah.php', a='&', 'c'='=')
|
||||
'/blah.php?b=%3D&a=%26'
|
||||
|
||||
"""
|
||||
|
||||
if not args:
|
||||
args = kwargs
|
||||
if not args:
|
||||
return base
|
||||
else:
|
||||
return '%s?%s' % (base, urllib.urlencode(args))
|
||||
|
||||
def str(self, s):
|
||||
if isinstance(s, unicode):
|
||||
s = s.encode('iso-8859-15', 'replace')
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue