new API in BaseBackend to create browser

This commit is contained in:
Romain Bignon 2010-05-20 10:39:49 +02:00
commit c1279aa496
12 changed files with 84 additions and 87 deletions

View file

@ -47,18 +47,14 @@ class AuMBackend(BaseBackend, ICapMessages, ICapMessagesReply, ICapDating, ICapC
'password': BaseBackend.ConfigField(description='Password of account', is_masked=True),
}
STORAGE = {'profiles_walker': {'viewed': []} }
BROWSER = AdopteUnMec
def default_browser(self):
return self.build_browser(self.config['username'], self.config['password'])
# Private
_browser = None
_profiles_walker = None
def __getattr__(self, name):
if name == 'browser':
if not self._browser:
self._browser = AdopteUnMec(self.config['username'], self.config['password'])
return self._browser
raise AttributeError, name
def iter_messages(self, thread=None):
for message in self._iter_messages(thread, False):
yield message

View file

@ -34,22 +34,15 @@ class BNPorcBackend(BaseBackend, ICapBank):
CONFIG = {'login': BaseBackend.ConfigField(description='Account ID'),
'password': BaseBackend.ConfigField(description='Password of account', is_masked=True)
}
browser = None
BROWSER = BNPorc
def need_browser(func):
def inner(self, *args, **kwargs):
if not self.browser:
self.browser = BNPorc(self.config['login'], self.config['password'])
def default_browser(self):
return self.build_browser(self.config['login'], self.config['password'])
return func(self, *args, **kwargs)
return inner
@need_browser
def iter_accounts(self):
for account in self.browser.get_accounts_list():
yield account
@need_browser
def get_account(self, _id):
try:
_id = long(_id)
@ -62,7 +55,6 @@ class BNPorcBackend(BaseBackend, ICapBank):
else:
raise AccountNotFound()
@need_browser
def iter_operations(self, account):
for coming in self.browser.get_coming_operations(account):
yield coming

View file

@ -30,15 +30,14 @@ class CanalTPBackend(BaseBackend, ICapTravel):
VERSION = '1.0'
LICENSE = 'GPLv3'
DESCRIPTION = "French trains"
BROWSER = CanalTP
def iter_station_search(self, pattern):
canaltp = CanalTP()
for _id, name in canaltp.iter_station_search(pattern):
for _id, name in self.browser.iter_station_search(pattern):
yield Station(_id, name)
def iter_station_departures(self, station_id, arrival_id=None):
canaltp = CanalTP()
for i, d in enumerate(canaltp.iter_station_departures(station_id, arrival_id)):
for i, d in enumerate(self.browser.iter_station_departures(station_id, arrival_id)):
departure = Departure(i, d['type'], d['time'])
departure.departure_station = d['departure']
departure.arrival_station = d['arrival']

View file

@ -35,22 +35,15 @@ class CragrBackend(BaseBackend, ICapBank):
'password': BaseBackend.ConfigField(description='Password of account', is_masked=True),
'website': BaseBackend.ConfigField(description='What website to use', default='m.lefil.com'),
}
browser = None
BROWSER = Cragr
def need_browser(func):
def inner(self, *args, **kwargs):
if not self.browser:
self.browser = Cragr(self.config['website'], self.config['login'], self.config['password'])
def default_browser(self):
return self.build_browser(self.config['website'], self.config['login'], self.config['password'])
return func(self, *args, **kwargs)
return inner
@need_browser
def iter_accounts(self):
for account in self.browser.get_accounts_list():
yield account
@need_browser
def get_account(self, _id):
try:
_id = long(_id)
@ -63,7 +56,6 @@ class CragrBackend(BaseBackend, ICapBank):
else:
raise AccountNotFound()
@need_browser
def iter_operations(self, account):
""" Not supported yet """
return iter([])

View file

@ -39,14 +39,10 @@ class DLFPBackend(BaseBackend, ICapMessages, ICapMessagesReply):
'get_telegrams': BaseBackend.ConfigField(default=False, description='Get telegrams'),
}
STORAGE = {'seen': {}}
_browser = None
BROWSER = DLFP
def __getattr__(self, name):
if name == 'browser':
if not self._browser:
self._browser = DLFP(self.config['username'], self.config['password'])
return self._browser
raise AttributeError, name
def default_browser(self):
return self.build_browser(self.config['username'], self.config['password'])
def iter_messages(self, thread=None):
return self._iter_messages(thread, False)

View file

@ -40,15 +40,11 @@ class GazelleBackend(BaseBackend, ICapTorrent):
'protocol': BaseBackend.ConfigField(description='Protocol to use ("http" or "https")'),
'domain': BaseBackend.ConfigField(description='Domain (example "ssl.what.cd")'),
}
_browser = None
BROWSER = GazelleBrowser
def __getattr__(self, name):
if name == 'browser':
if not self._browser:
self._browser = GazelleBrowser(self.config['protocol'], self.config['domain'],
self.config['username'], self.config['password'])
return self._browser
raise AttributeError, name
def default_browser(self):
return self.build_browser(self.config['protocol'], self.config['domain'],
self.config['username'], self.config['password'])
def get_torrent(self, id):
return self.browser.get_torrent(id)

View file

@ -31,6 +31,7 @@ class TransilienBackend(BaseBackend, ICapTravel):
VERSION = '1.0'
LICENSE = 'GPLv3'
DESCRIPTION = "Transports in Paris"
BROWSER = Transilien
def iter_station_search(self, pattern):
pattern = pattern.lower()
@ -39,8 +40,7 @@ class TransilienBackend(BaseBackend, ICapTravel):
yield Station(_id, name)
def iter_station_departures(self, station_id, arrival_id=None):
transilien = Transilien()
for i, d in enumerate(transilien.iter_station_departures(station_id, arrival_id)):
for i, d in enumerate(self.browser.iter_station_departures(station_id, arrival_id)):
departure = Departure(i, d['type'], d['time'])
departure.departure_station = d['departure']
departure.arrival_station = d['arrival']

View file

@ -1,16 +1,16 @@
# -*- coding: utf-8 -*-
# Copyright(C) 2010 Roger Philibert
#
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, version 3 of the License.
#
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
@ -35,16 +35,9 @@ class YoujizzBackend(BaseBackend, ICapVideoProvider):
LICENSE = 'GPLv3'
CONFIG = {}
_browser = None
BROWSER = YoujizzBrowser
domain = u'youjizz.com'
def __getattr__(self, name):
if name == 'browser':
if not self._browser:
self._browser = YoujizzBrowser()
return self._browser
raise AttributeError, name
@id2url(domain, YoujizzVideo.id2url)
def get_video(self, _id):
return self.browser.get_video(_id)

View file

@ -1,16 +1,16 @@
# -*- coding: utf-8 -*-
# Copyright(C) 2010 Romain Bignon
#
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, version 3 of the License.
#
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
@ -35,16 +35,9 @@ class YoupornBackend(BaseBackend, ICapVideoProvider):
LICENSE = 'GPLv3'
CONFIG = {}
_browser = None
BROWSER = YoupornBrowser
domain = u'youporn.com'
def __getattr__(self, name):
if name == 'browser':
if not self._browser:
self._browser = YoupornBrowser()
return self._browser
raise AttributeError, name
@id2url(domain, YoupornVideo.id2url)
def get_video(self, _id):
return self.browser.get_video(_id)

View file

@ -1,16 +1,16 @@
# -*- coding: utf-8 -*-
# Copyright(C) 2010 Christophe Benz, Romain Bignon
#
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, version 3 of the License.
#
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
@ -37,16 +37,9 @@ class YoutubeBackend(BaseBackend, ICapVideoProvider):
LICENSE = 'GPLv3'
CONFIG = {}
_browser = None
BROWSER = YoutubeBrowser
domain = u'youtube.com'
def __getattr__(self, name):
if name == 'browser':
if not self._browser:
self._browser = YoutubeBrowser()
return self._browser
raise AttributeError, name
@id2url(domain, YoutubeVideo.id2url)
def get_video(self, _id):
return self.browser.get_video(_id)