Rename BaseBrowser to Browser

This commit is contained in:
Florent 2014-09-23 10:53:38 +02:00
commit 0088013ae1
132 changed files with 348 additions and 348 deletions

View file

@ -65,7 +65,7 @@ In a module directory, there are commonly these files:
* **__init__.py** - needed in every python modules, it exports your :class:`Module <weboob.tools.backend.Module>` class. * **__init__.py** - needed in every python modules, it exports your :class:`Module <weboob.tools.backend.Module>` class.
* **module.py** - defines the main class of your module, which derives :class:`Module <weboob.tools.backend.Module>`. * **module.py** - defines the main class of your module, which derives :class:`Module <weboob.tools.backend.Module>`.
* **browser.py** - your browser, derived from :class:`BaseBrowser <weboob.tools.browser2.browser.BaseBrowser>`, is called by your module to interact with the supported website. * **browser.py** - your browser, derived from :class:`Browser <weboob.tools.browser2.browser.Browser>`, is called by your module to interact with the supported website.
* **pages.py** - all website's pages handled by the browser are defined here * **pages.py** - all website's pages handled by the browser are defined here
* **test.py** - functional tests * **test.py** - functional tests
* **favicon.png** - a 64x64 transparent PNG icon * **favicon.png** - a 64x64 transparent PNG icon

View file

@ -18,7 +18,7 @@
# along with weboob. If not, see <http://www.gnu.org/licenses/>. # along with weboob. If not, see <http://www.gnu.org/licenses/>.
from weboob.tools.browser import BaseBrowser, BrowserHTTPNotFound from weboob.tools.browser import Browser, BrowserHTTPNotFound
from .pages import RecipePage, ResultsPage from .pages import RecipePage, ResultsPage
@ -26,11 +26,11 @@ from .pages import RecipePage, ResultsPage
__all__ = ['SevenFiftyGramsBrowser'] __all__ = ['SevenFiftyGramsBrowser']
class SevenFiftyGramsBrowser(BaseBrowser): class SevenFiftyGramsBrowser(Browser):
DOMAIN = 'www.750g.com' DOMAIN = 'www.750g.com'
PROTOCOL = 'http' PROTOCOL = 'http'
ENCODING = 'windows-1252' ENCODING = 'windows-1252'
USER_AGENT = BaseBrowser.USER_AGENTS['wget'] USER_AGENT = Browser.USER_AGENTS['wget']
PAGES = { PAGES = {
'http://www.750g.com/recettes_.*.htm': ResultsPage, 'http://www.750g.com/recettes_.*.htm': ResultsPage,
'http://www.750g.com/fiche_de_cuisine_complete.htm\?recettes_id=[0-9]*': RecipePage, 'http://www.750g.com/fiche_de_cuisine_complete.htm\?recettes_id=[0-9]*': RecipePage,

View file

@ -18,7 +18,7 @@
# along with weboob. If not, see <http://www.gnu.org/licenses/>. # along with weboob. If not, see <http://www.gnu.org/licenses/>.
from weboob.tools.browser.decorators import id2url from weboob.tools.browser.decorators import id2url
from weboob.tools.browser import BaseBrowser from weboob.tools.browser import Browser
from .job import AdeccoJobAdvert from .job import AdeccoJobAdvert
from .pages import SearchPage, AdvertPage from .pages import SearchPage, AdvertPage
import urllib import urllib
@ -26,7 +26,7 @@ import urllib
__all__ = ['AdeccoBrowser'] __all__ = ['AdeccoBrowser']
class AdeccoBrowser(BaseBrowser): class AdeccoBrowser(Browser):
PROTOCOL = 'http' PROTOCOL = 'http'
DOMAIN = 'www.adecco.fr' DOMAIN = 'www.adecco.fr'
ENCODING = None ENCODING = None

View file

@ -20,7 +20,7 @@
from weboob.capabilities.base import NotAvailable, NotLoaded from weboob.capabilities.base import NotAvailable, NotLoaded
from weboob.capabilities.cinema import Movie, Person from weboob.capabilities.cinema import Movie, Person
from weboob.tools.browser import BaseBrowser from weboob.tools.browser import Browser
from weboob.tools.json import json from weboob.tools.json import json
import base64 import base64
import hashlib import hashlib
@ -32,7 +32,7 @@ import urllib
__all__ = ['AllocineBrowser'] __all__ = ['AllocineBrowser']
class AllocineBrowser(BaseBrowser): class AllocineBrowser(Browser):
DOMAIN = 'api.allocine.fr' DOMAIN = 'api.allocine.fr'
PROTOCOL = 'http' PROTOCOL = 'http'
ENCODING = 'utf-8' ENCODING = 'utf-8'

View file

@ -18,7 +18,7 @@
# along with weboob. If not, see <http://www.gnu.org/licenses/>. # along with weboob. If not, see <http://www.gnu.org/licenses/>.
from weboob.tools.browser import BaseBrowser, BrowserHTTPNotFound from weboob.tools.browser import Browser, BrowserHTTPNotFound
from .pages import RecipePage, ResultsPage, FourOFourPage from .pages import RecipePage, ResultsPage, FourOFourPage
@ -26,11 +26,11 @@ from .pages import RecipePage, ResultsPage, FourOFourPage
__all__ = ['AllrecipesBrowser'] __all__ = ['AllrecipesBrowser']
class AllrecipesBrowser(BaseBrowser): class AllrecipesBrowser(Browser):
DOMAIN = 'allrecipes.com' DOMAIN = 'allrecipes.com'
PROTOCOL = 'http' PROTOCOL = 'http'
ENCODING = 'utf-8' ENCODING = 'utf-8'
USER_AGENT = BaseBrowser.USER_AGENTS['wget'] USER_AGENT = Browser.USER_AGENTS['wget']
PAGES = { PAGES = {
'http://allrecipes.com/search/default.aspx\?qt=k&wt=.*&rt=r&origin=.*': ResultsPage, 'http://allrecipes.com/search/default.aspx\?qt=k&wt=.*&rt=r&origin=.*': ResultsPage,
'http://allrecipes.com/Recipe/.*/Detail.aspx': RecipePage, 'http://allrecipes.com/Recipe/.*/Detail.aspx': RecipePage,

View file

@ -17,7 +17,7 @@
# You should have received a copy of the GNU Affero General Public License # You should have received a copy of the GNU Affero General Public License
# along with weboob. If not, see <http://www.gnu.org/licenses/>. # along with weboob. If not, see <http://www.gnu.org/licenses/>.
from weboob.tools.browser import BaseBrowser, BrowserIncorrectPassword from weboob.tools.browser import Browser, BrowserIncorrectPassword
from weboob.capabilities.bill import Detail from weboob.capabilities.bill import Detail
from decimal import Decimal from decimal import Decimal
from .pages import LoginPage, HomePage, AccountPage, LastPaymentsPage, PaymentDetailsPage, BillsPage from .pages import LoginPage, HomePage, AccountPage, LastPaymentsPage, PaymentDetailsPage, BillsPage
@ -25,7 +25,7 @@ from .pages import LoginPage, HomePage, AccountPage, LastPaymentsPage, PaymentDe
__all__ = ['AmeliBrowser'] __all__ = ['AmeliBrowser']
class AmeliBrowser(BaseBrowser): class AmeliBrowser(Browser):
PROTOCOL = 'https' PROTOCOL = 'https'
DOMAIN = 'assure.ameli.fr' DOMAIN = 'assure.ameli.fr'
ENCODING = None ENCODING = None

View file

@ -18,7 +18,7 @@
# along with weboob. If not, see <http://www.gnu.org/licenses/>. # along with weboob. If not, see <http://www.gnu.org/licenses/>.
import urllib import urllib
from weboob.tools.browser import BaseBrowser, BrowserIncorrectPassword from weboob.tools.browser import Browser, BrowserIncorrectPassword
from weboob.capabilities.bill import Detail from weboob.capabilities.bill import Detail
from decimal import Decimal from decimal import Decimal
from .pages import LoginPage, HomePage, AccountPage, HistoryPage, BillsPage from .pages import LoginPage, HomePage, AccountPage, HistoryPage, BillsPage
@ -26,7 +26,7 @@ from .pages import LoginPage, HomePage, AccountPage, HistoryPage, BillsPage
__all__ = ['AmeliProBrowser'] __all__ = ['AmeliProBrowser']
class AmeliProBrowser(BaseBrowser): class AmeliProBrowser(Browser):
PROTOCOL = 'https' PROTOCOL = 'https'
DOMAIN = 'espacepro.ameli.fr' DOMAIN = 'espacepro.ameli.fr'
ENCODING = None ENCODING = None

View file

@ -20,7 +20,7 @@
from urlparse import urlsplit, parse_qsl from urlparse import urlsplit, parse_qsl
from weboob.tools.browser import BaseBrowser, BrowserIncorrectPassword from weboob.tools.browser import Browser, BrowserIncorrectPassword
from .pages import LoginPage, AccountsPage, TransactionsPage from .pages import LoginPage, AccountsPage, TransactionsPage
@ -28,7 +28,7 @@ from .pages import LoginPage, AccountsPage, TransactionsPage
__all__ = ['AmericanExpressBrowser'] __all__ = ['AmericanExpressBrowser']
class AmericanExpressBrowser(BaseBrowser): class AmericanExpressBrowser(Browser):
DOMAIN = 'global.americanexpress.com' DOMAIN = 'global.americanexpress.com'
PROTOCOL = 'https' PROTOCOL = 'https'
ENCODING = 'ISO-8859-1' ENCODING = 'ISO-8859-1'

View file

@ -18,7 +18,7 @@
# along with weboob. If not, see <http://www.gnu.org/licenses/>. # along with weboob. If not, see <http://www.gnu.org/licenses/>.
from weboob.tools.browser.decorators import id2url from weboob.tools.browser.decorators import id2url
from weboob.tools.browser import BaseBrowser from weboob.tools.browser import Browser
import urllib import urllib
from .pages import SearchPage, AdvertPage from .pages import SearchPage, AdvertPage
from .job import ApecJobAdvert from .job import ApecJobAdvert
@ -27,7 +27,7 @@ from .job import ApecJobAdvert
__all__ = ['ApecBrowser'] __all__ = ['ApecBrowser']
class ApecBrowser(BaseBrowser): class ApecBrowser(Browser):
PROTOCOL = 'http' PROTOCOL = 'http'
DOMAIN = 'www.apec.fr' DOMAIN = 'www.apec.fr'
ENCODING = 'ISO-8859-1' ENCODING = 'ISO-8859-1'

View file

@ -18,7 +18,7 @@
# along with weboob. If not, see <http://www.gnu.org/licenses/>. # along with weboob. If not, see <http://www.gnu.org/licenses/>.
from weboob.tools.browser import BaseBrowser, BrowserIncorrectPassword from weboob.tools.browser import Browser, BrowserIncorrectPassword
from .pages import LoginPage, AccountsPage, OperationsPage from .pages import LoginPage, AccountsPage, OperationsPage
@ -26,7 +26,7 @@ from .pages import LoginPage, AccountsPage, OperationsPage
__all__ = ['ApivieBrowser'] __all__ = ['ApivieBrowser']
class ApivieBrowser(BaseBrowser): class ApivieBrowser(Browser):
PROTOCOL = 'https' PROTOCOL = 'https'
DOMAIN = 'www.apivie.fr' DOMAIN = 'www.apivie.fr'
ENCODING = None ENCODING = None

View file

@ -18,7 +18,7 @@
# along with weboob. If not, see <http://www.gnu.org/licenses/>. # along with weboob. If not, see <http://www.gnu.org/licenses/>.
from weboob.tools.browser import BaseBrowser, BrowserIncorrectPassword from weboob.tools.browser import Browser, BrowserIncorrectPassword
from weboob.tools.browser.decorators import id2url from weboob.tools.browser.decorators import id2url
from .pages import VideoPage, IndexPage, LoginPage, LoginRedirectPage from .pages import VideoPage, IndexPage, LoginPage, LoginRedirectPage
@ -28,7 +28,7 @@ from .video import ArretSurImagesVideo
__all__ = ['ArretSurImagesBrowser'] __all__ = ['ArretSurImagesBrowser']
class ArretSurImagesBrowser(BaseBrowser): class ArretSurImagesBrowser(Browser):
PROTOCOL = 'http' PROTOCOL = 'http'
DOMAIN = 'www.arretsurimages.net' DOMAIN = 'www.arretsurimages.net'
ENCODING = None ENCODING = None

View file

@ -25,7 +25,7 @@ import urllib
from weboob.capabilities import NotAvailable from weboob.capabilities import NotAvailable
from weboob.capabilities.image import BaseImage from weboob.capabilities.image import BaseImage
from weboob.tools.json import json as simplejson from weboob.tools.json import json as simplejson
from weboob.tools.browser import BaseBrowser from weboob.tools.browser import Browser
from weboob.tools.browser.decorators import id2url from weboob.tools.browser.decorators import id2url
from .pages import ArteLivePage, ArteLiveVideoPage from .pages import ArteLivePage, ArteLiveVideoPage
@ -34,7 +34,7 @@ from .video import ArteVideo, ArteLiveVideo
__all__ = ['ArteBrowser'] __all__ = ['ArteBrowser']
class ArteBrowser(BaseBrowser): class ArteBrowser(Browser):
DOMAIN = u'videos.arte.tv' DOMAIN = u'videos.arte.tv'
ENCODING = None ENCODING = None
PAGES = {r'http://concert.arte.tv/\w+': ArteLivePage, PAGES = {r'http://concert.arte.tv/\w+': ArteLivePage,
@ -51,7 +51,7 @@ class ArteBrowser(BaseBrowser):
self.lang = lang self.lang = lang
self.quality = quality self.quality = quality
self.order = order self.order = order
BaseBrowser.__init__(self, *args, **kwargs) Browser.__init__(self, *args, **kwargs)
@id2url(ArteVideo.id2url) @id2url(ArteVideo.id2url)
def get_video(self, url, video=None): def get_video(self, url, video=None):

View file

@ -18,7 +18,7 @@
# along with weboob. If not, see <http://www.gnu.org/licenses/>. # along with weboob. If not, see <http://www.gnu.org/licenses/>.
from weboob.tools.browser import BaseBrowser, BrowserHTTPNotFound from weboob.tools.browser import Browser, BrowserHTTPNotFound
from .pages import SubtitlesPage, SearchPage from .pages import SubtitlesPage, SearchPage
@ -26,11 +26,11 @@ from .pages import SubtitlesPage, SearchPage
__all__ = ['AttilasubBrowser'] __all__ = ['AttilasubBrowser']
class AttilasubBrowser(BaseBrowser): class AttilasubBrowser(Browser):
DOMAIN = 'davidbillemont3.free.fr' DOMAIN = 'davidbillemont3.free.fr'
PROTOCOL = 'http' PROTOCOL = 'http'
ENCODING = 'windows-1252' ENCODING = 'windows-1252'
USER_AGENT = BaseBrowser.USER_AGENTS['wget'] USER_AGENT = Browser.USER_AGENTS['wget']
PAGES = { PAGES = {
'http://search.freefind.com/find.html.*': SearchPage, 'http://search.freefind.com/find.html.*': SearchPage,
'http://davidbillemont3.free.fr/.*.htm': SubtitlesPage, 'http://davidbillemont3.free.fr/.*.htm': SubtitlesPage,

View file

@ -26,7 +26,7 @@ import re
import urllib import urllib
import urllib2 import urllib2
from weboob.tools.browser import BaseBrowser, BrowserIncorrectPassword, BrowserHTTPNotFound, BrowserUnavailable from weboob.tools.browser import Browser, BrowserIncorrectPassword, BrowserHTTPNotFound, BrowserUnavailable
from weboob.tools.json import json from weboob.tools.json import json
from weboob.tools.date import local2utc from weboob.tools.date import local2utc
from weboob.tools.misc import to_unicode from weboob.tools.misc import to_unicode
@ -66,7 +66,7 @@ class AuMException(UserError):
self.code = code self.code = code
class WebsiteBrowser(BaseBrowser): class WebsiteBrowser(Browser):
def login(self): def login(self):
data = {'username': self.username, data = {'username': self.username,
'password': self.password, 'password': self.password,
@ -115,7 +115,7 @@ class WebsiteBrowser(BaseBrowser):
return profile return profile
class AuMBrowser(BaseBrowser): class AuMBrowser(Browser):
DOMAIN = 'www.adopteunmec.com' DOMAIN = 'www.adopteunmec.com'
APIKEY = 'fb0123456789abcd' APIKEY = 'fb0123456789abcd'
APITOKEN = 'DCh7Se53v8ejS8466dQe63' APITOKEN = 'DCh7Se53v8ejS8466dQe63'
@ -131,7 +131,7 @@ class AuMBrowser(BaseBrowser):
def __init__(self, username, password, search_query, *args, **kwargs): def __init__(self, username, password, search_query, *args, **kwargs):
kwargs['get_home'] = False kwargs['get_home'] = False
BaseBrowser.__init__(self, username, password, *args, **kwargs) Browser.__init__(self, username, password, *args, **kwargs)
# now we do authentication ourselves # now we do authentication ourselves
#self.add_password('http://www.adopteunmec.com/api/', self.username, self.password) #self.add_password('http://www.adopteunmec.com/api/', self.username, self.password)
@ -239,7 +239,7 @@ class AuMBrowser(BaseBrowser):
if e.getcode() in (410,): if e.getcode() in (410,):
return BrowserHTTPNotFound return BrowserHTTPNotFound
return BaseBrowser.get_exception(self, e) return Browser.get_exception(self, e)
def home(self): def home(self):
r = self.api_request('home/') r = self.api_request('home/')

View file

@ -20,7 +20,7 @@
import urllib import urllib
from weboob.tools.browser import BaseBrowser, BrowserIncorrectPassword from weboob.tools.browser import Browser, BrowserIncorrectPassword
from .pages import LoginPage, AccountsPage, TransactionsPage, CBTransactionsPage, UnavailablePage from .pages import LoginPage, AccountsPage, TransactionsPage, CBTransactionsPage, UnavailablePage
@ -28,7 +28,7 @@ from .pages import LoginPage, AccountsPage, TransactionsPage, CBTransactionsPage
__all__ = ['AXABanque'] __all__ = ['AXABanque']
class AXABanque(BaseBrowser): class AXABanque(Browser):
PROTOCOL = 'https' PROTOCOL = 'https'
DOMAIN = 'www.axabanque.fr' DOMAIN = 'www.axabanque.fr'
PAGES = {'https?://www.axabanque.fr/connexion/index.html.*': LoginPage, PAGES = {'https?://www.axabanque.fr/connexion/index.html.*': LoginPage,

View file

@ -20,7 +20,7 @@
import urllib import urllib
from weboob.tools.browser import BaseBrowser, BrowserIncorrectPassword, BrokenPageError from weboob.tools.browser import Browser, BrowserIncorrectPassword, BrokenPageError
from .pages import LoginPage, IndexPage, AccountsPage, CardsPage, TransactionsPage, \ from .pages import LoginPage, IndexPage, AccountsPage, CardsPage, TransactionsPage, \
UnavailablePage, RedirectPage, HomePage UnavailablePage, RedirectPage, HomePage
@ -29,7 +29,7 @@ from .pages import LoginPage, IndexPage, AccountsPage, CardsPage, TransactionsPa
__all__ = ['BanquePopulaire'] __all__ = ['BanquePopulaire']
class BanquePopulaire(BaseBrowser): class BanquePopulaire(Browser):
PROTOCOL = 'https' PROTOCOL = 'https'
ENCODING = 'iso-8859-15' ENCODING = 'iso-8859-15'
PAGES = {'https://[^/]+/auth/UI/Login.*': LoginPage, PAGES = {'https://[^/]+/auth/UI/Login.*': LoginPage,
@ -55,7 +55,7 @@ class BanquePopulaire(BaseBrowser):
self.DOMAIN = website self.DOMAIN = website
self.token = None self.token = None
BaseBrowser.__init__(self, *args, **kwargs) Browser.__init__(self, *args, **kwargs)
def is_logged(self): def is_logged(self):
return not self.is_on_page(LoginPage) return not self.is_on_page(LoginPage)

View file

@ -18,7 +18,7 @@
# along with weboob. If not, see <http://www.gnu.org/licenses/>. # along with weboob. If not, see <http://www.gnu.org/licenses/>.
from weboob.tools.browser import BaseBrowser, BrowserIncorrectPassword from weboob.tools.browser import Browser, BrowserIncorrectPassword
from .pages import LoginPage, Login2Page, IndexPage, AccountsPage, TransactionsPage, \ from .pages import LoginPage, Login2Page, IndexPage, AccountsPage, TransactionsPage, \
CardPage, ValuationPage, LoanPage, MarketPage CardPage, ValuationPage, LoanPage, MarketPage
@ -27,7 +27,7 @@ from .pages import LoginPage, Login2Page, IndexPage, AccountsPage, TransactionsP
__all__ = ['Barclays'] __all__ = ['Barclays']
class Barclays(BaseBrowser): class Barclays(Browser):
PROTOCOL = 'https' PROTOCOL = 'https'
DOMAIN = 'www.barclays.fr' DOMAIN = 'www.barclays.fr'
PAGES = {'https?://.*.barclays.fr/\d-index.html': IndexPage, PAGES = {'https?://.*.barclays.fr/\d-index.html': IndexPage,
@ -44,7 +44,7 @@ class Barclays(BaseBrowser):
def __init__(self, secret, *args, **kwargs): def __init__(self, secret, *args, **kwargs):
self.secret = secret self.secret = secret
BaseBrowser.__init__(self, *args, **kwargs) Browser.__init__(self, *args, **kwargs)
def is_logged(self): def is_logged(self):
return self.page is not None and not self.is_on_page((LoginPage, IndexPage, Login2Page)) return self.page is not None and not self.is_on_page((LoginPage, IndexPage, Login2Page))

View file

@ -22,7 +22,7 @@ import urllib
from datetime import datetime from datetime import datetime
from logging import warning from logging import warning
from weboob.tools.browser import BaseBrowser, BrowserIncorrectPassword, BrowserPasswordExpired from weboob.tools.browser import Browser, BrowserIncorrectPassword, BrowserPasswordExpired
from weboob.capabilities.bank import TransferError, Transfer from weboob.capabilities.bank import TransferError, Transfer
from .perso.accounts_list import AccountsList, AccountPrelevement from .perso.accounts_list import AccountsList, AccountPrelevement
@ -36,7 +36,7 @@ from .pro import ProAccountsList, ProAccountHistory
__all__ = ['BNPorc'] __all__ = ['BNPorc']
class BNPorc(BaseBrowser): class BNPorc(Browser):
DOMAIN = 'www.secure.bnpparibas.net' DOMAIN = 'www.secure.bnpparibas.net'
PROTOCOL = 'https' PROTOCOL = 'https'
CERTHASH = ['5511f0ff19c982b6351c17b901bfa7419f075edb13f2df41e446248beb7866bb', 'fa8cb72ef2e46054469af916f7ec222b1904901fecde8511a0f769ba0385410d', '86cd4ba8cfbc53937dfc402e8c2d0a2d5ffb630a73bbeafd09c39f8b54a6a6c3'] CERTHASH = ['5511f0ff19c982b6351c17b901bfa7419f075edb13f2df41e446248beb7866bb', 'fa8cb72ef2e46054469af916f7ec222b1904901fecde8511a0f769ba0385410d', '86cd4ba8cfbc53937dfc402e8c2d0a2d5ffb630a73bbeafd09c39f8b54a6a6c3']
@ -66,7 +66,7 @@ class BNPorc(BaseBrowser):
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
self.rotating_password = kwargs.pop('rotating_password', None) self.rotating_password = kwargs.pop('rotating_password', None)
self.password_changed_cb = kwargs.pop('password_changed_cb', None) self.password_changed_cb = kwargs.pop('password_changed_cb', None)
BaseBrowser.__init__(self, *args, **kwargs) Browser.__init__(self, *args, **kwargs)
def home(self): def home(self):
self.location('https://www.secure.bnpparibas.net/banque/portail/particulier/HomeConnexion?type=homeconnex') self.location('https://www.secure.bnpparibas.net/banque/portail/particulier/HomeConnexion?type=homeconnex')

View file

@ -18,14 +18,14 @@
# along with weboob. If not, see <http://www.gnu.org/licenses/>. # along with weboob. If not, see <http://www.gnu.org/licenses/>.
from weboob.tools.browser import BaseBrowser, BrowserIncorrectPassword from weboob.tools.browser import Browser, BrowserIncorrectPassword
from .pages import LoginPage, AccountsPage, HistoryPage, UnknownPage from .pages import LoginPage, AccountsPage, HistoryPage, UnknownPage
__all__ = ['BNPEnterprise'] __all__ = ['BNPEnterprise']
class BNPEnterprise(BaseBrowser): class BNPEnterprise(Browser):
DOMAIN = 'entreprises.bnpparibas.net' DOMAIN = 'entreprises.bnpparibas.net'
PROTOCOL = 'https' PROTOCOL = 'https'
CERTHASH = '6789f1e08e18d6578dca88ce2e0354a99dbe7824736c01c9c4fa3b456d03b9e9' CERTHASH = '6789f1e08e18d6578dca88ce2e0354a99dbe7824736c01c9c4fa3b456d03b9e9'

View file

@ -20,7 +20,7 @@
# along with weboob. If not, see <http://www.gnu.org/licenses/>. # along with weboob. If not, see <http://www.gnu.org/licenses/>.
from weboob.tools.browser import BaseBrowser, BrowserIncorrectPassword from weboob.tools.browser import Browser, BrowserIncorrectPassword
from .pages import LoginPage, AccountsList, AccountHistory, CardHistory, UpdateInfoPage, AuthenticationPage from .pages import LoginPage, AccountsList, AccountHistory, CardHistory, UpdateInfoPage, AuthenticationPage
@ -32,7 +32,7 @@ class BrowserIncorrectAuthenticationCode(BrowserIncorrectPassword):
pass pass
class Boursorama(BaseBrowser): class Boursorama(Browser):
DOMAIN = 'www.boursorama.com' DOMAIN = 'www.boursorama.com'
PROTOCOL = 'https' PROTOCOL = 'https'
CERTHASH = ['6bdf8b6dd177bd417ddcb1cfb818ede153288e44115eb269f2ddd458c8461039', 'b290ef629c88f0508e9cc6305421c173bd4291175e3ddedbee05ee666b34c20e'] CERTHASH = ['6bdf8b6dd177bd417ddcb1cfb818ede153288e44115eb269f2ddd458c8461039', 'b290ef629c88f0508e9cc6305421c173bd4291175e3ddedbee05ee666b34c20e']
@ -51,7 +51,7 @@ class Boursorama(BaseBrowser):
*args, **kwargs): *args, **kwargs):
self.device = device self.device = device
self.enable_twofactors = enable_twofactors self.enable_twofactors = enable_twofactors
BaseBrowser.__init__(self, *args, **kwargs) Browser.__init__(self, *args, **kwargs)
def home(self): def home(self):
if not self.is_logged(): if not self.is_logged():

View file

@ -21,13 +21,13 @@
from .pages.compose import ComposeFrame, ComposePage, ConfirmPage, SentPage from .pages.compose import ComposeFrame, ComposePage, ConfirmPage, SentPage
from .pages.login import LoginPage, LoginSASPage from .pages.login import LoginPage, LoginSASPage
from weboob.tools.browser import BaseBrowser, BrowserIncorrectPassword from weboob.tools.browser import Browser, BrowserIncorrectPassword
__all__ = ['BouyguesBrowser'] __all__ = ['BouyguesBrowser']
class BouyguesBrowser(BaseBrowser): class BouyguesBrowser(Browser):
DOMAIN = 'www.bouyguestelecom.fr' DOMAIN = 'www.bouyguestelecom.fr'
PAGES = { PAGES = {
'http://www.espaceclient.bouyguestelecom.fr/ECF/jsf/client/envoiSMS/viewEnvoiSMS.jsf': ComposePage, 'http://www.espaceclient.bouyguestelecom.fr/ECF/jsf/client/envoiSMS/viewEnvoiSMS.jsf': ComposePage,

View file

@ -21,7 +21,7 @@
from urlparse import urlsplit, parse_qsl from urlparse import urlsplit, parse_qsl
from datetime import datetime from datetime import datetime
from weboob.tools.browser import BaseBrowser, BrowserIncorrectPassword, BrowserBanned from weboob.tools.browser import Browser, BrowserIncorrectPassword, BrowserBanned
from .pages import LoginPage, Initident, CheckPassword, repositionnerCheminCourant, BadLoginPage, AccountDesactivate, \ from .pages import LoginPage, Initident, CheckPassword, repositionnerCheminCourant, BadLoginPage, AccountDesactivate, \
AccountList, AccountHistory, CardsList, UnavailablePage, \ AccountList, AccountHistory, CardsList, UnavailablePage, \
@ -33,7 +33,7 @@ from weboob.capabilities.bank import Transfer
__all__ = ['BPBrowser'] __all__ = ['BPBrowser']
class BPBrowser(BaseBrowser): class BPBrowser(Browser):
DOMAIN = 'voscomptesenligne.labanquepostale.fr' DOMAIN = 'voscomptesenligne.labanquepostale.fr'
PROTOCOL = 'https' PROTOCOL = 'https'
CERTHASH = ['d10d09246853237892d5fb44685826ea99bfdeaaf29fac6dd236dae8cb103c39', 'ccdf2885f1d6df19e15d098dd52fd486609d891ebd2724970a5cfcb9254b6fa5'] CERTHASH = ['d10d09246853237892d5fb44685826ea99bfdeaaf29fac6dd236dae8cb103c39', 'ccdf2885f1d6df19e15d098dd52fd486609d891ebd2724970a5cfcb9254b6fa5']
@ -63,7 +63,7 @@ class BPBrowser(BaseBrowser):
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
kwargs['parser'] = ('lxml',) kwargs['parser'] = ('lxml',)
BaseBrowser.__init__(self, *args, **kwargs) Browser.__init__(self, *args, **kwargs)
def home(self): def home(self):
self.location('https://voscomptesenligne.labanquepostale.fr/wsost/OstBrokerWeb/loginform?TAM_OP=login&' self.location('https://voscomptesenligne.labanquepostale.fr/wsost/OstBrokerWeb/loginform?TAM_OP=login&'

View file

@ -20,7 +20,7 @@
import urllib import urllib
from weboob.tools.browser import BaseBrowser, BrowserIncorrectPassword from weboob.tools.browser import Browser, BrowserIncorrectPassword
from .pages import LoginPage, LoginResultPage, AccountsPage, EmptyPage, TransactionsPage from .pages import LoginPage, LoginResultPage, AccountsPage, EmptyPage, TransactionsPage
@ -28,7 +28,7 @@ from .pages import LoginPage, LoginResultPage, AccountsPage, EmptyPage, Transact
__all__ = ['BredBrowser'] __all__ = ['BredBrowser']
class BredBrowser(BaseBrowser): class BredBrowser(Browser):
PROTOCOL = 'https' PROTOCOL = 'https'
DOMAIN = 'www.bred.fr' DOMAIN = 'www.bred.fr'
CERTHASH = ['9b77dab9c84e1dc9e0798de561a6541ff15f038f60b36ca74c29be1def6c19a3', '375f1fed165d34aacaaf71674ab14ca6c1b38404cf748278714fde3c58385ff0', '0853a056453b56aea6a29085ef3f3721b18db2052aa8e84220720d44e0eb22af'] CERTHASH = ['9b77dab9c84e1dc9e0798de561a6541ff15f038f60b36ca74c29be1def6c19a3', '375f1fed165d34aacaaf71674ab14ca6c1b38404cf748278714fde3c58385ff0', '0853a056453b56aea6a29085ef3f3721b18db2052aa8e84220720d44e0eb22af']
@ -54,7 +54,7 @@ class BredBrowser(BaseBrowser):
self.accnum = accnum.replace(' ','').zfill(11) self.accnum = accnum.replace(' ','').zfill(11)
self.DOMAIN = 'www.%s.fr' % website self.DOMAIN = 'www.%s.fr' % website
self.website = website self.website = website
BaseBrowser.__init__(self, *args, **kwargs) Browser.__init__(self, *args, **kwargs)
def is_logged(self): def is_logged(self):
return self.page is not None and not self.is_on_page(LoginPage) return self.page is not None and not self.is_on_page(LoginPage)

View file

@ -2,7 +2,7 @@
import urllib import urllib
from weboob.tools.browser import BaseBrowser from weboob.tools.browser import Browser
from .pages.index import IndexPage from .pages.index import IndexPage
from .pages.torrents import TorrentsPage, TorrentPage from .pages.torrents import TorrentsPage, TorrentPage
@ -11,11 +11,11 @@ from .pages.torrents import TorrentsPage, TorrentPage
__all__ = ['BTDiggBrowser'] __all__ = ['BTDiggBrowser']
class BTDiggBrowser(BaseBrowser): class BTDiggBrowser(Browser):
DOMAIN = 'btdigg.org' DOMAIN = 'btdigg.org'
PROTOCOL = 'https' PROTOCOL = 'https'
ENCODING = 'utf-8' ENCODING = 'utf-8'
USER_AGENT = BaseBrowser.USER_AGENTS['wget'] USER_AGENT = Browser.USER_AGENTS['wget']
PAGES = {'https://btdigg.org/': IndexPage, PAGES = {'https://btdigg.org/': IndexPage,
'https://btdigg.org/search?.*q=[^?]*': TorrentsPage, 'https://btdigg.org/search?.*q=[^?]*': TorrentsPage,
'https://btdigg.org/search?.*info_hash=[^?]*': TorrentPage, 'https://btdigg.org/search?.*info_hash=[^?]*': TorrentPage,

View file

@ -18,7 +18,7 @@
# along with weboob. If not, see <http://www.gnu.org/licenses/>. # along with weboob. If not, see <http://www.gnu.org/licenses/>.
from weboob.tools.browser import BaseBrowser, BrowserHTTPNotFound from weboob.tools.browser import Browser, BrowserHTTPNotFound
from .pages import TorrentsPage, TorrentPage from .pages import TorrentsPage, TorrentPage
@ -26,11 +26,11 @@ from .pages import TorrentsPage, TorrentPage
__all__ = ['BtmonBrowser'] __all__ = ['BtmonBrowser']
class BtmonBrowser(BaseBrowser): class BtmonBrowser(Browser):
DOMAIN = 'www.btmon.com' DOMAIN = 'www.btmon.com'
PROTOCOL = 'http' PROTOCOL = 'http'
ENCODING = 'utf-8' ENCODING = 'utf-8'
USER_AGENT = BaseBrowser.USER_AGENTS['wget'] USER_AGENT = Browser.USER_AGENTS['wget']
PAGES = { PAGES = {
'http://www.btmon.com/torrent/\?f=.*': TorrentsPage, 'http://www.btmon.com/torrent/\?f=.*': TorrentsPage,
'http://www.btmon.com/.*torrent.html': TorrentPage, 'http://www.btmon.com/.*torrent.html': TorrentPage,

View file

@ -22,7 +22,7 @@ import ssl
import hashlib import hashlib
from urlparse import urlsplit from urlparse import urlsplit
from weboob.tools.browser import BaseBrowser, BrowserIncorrectPassword from weboob.tools.browser import Browser, BrowserIncorrectPassword
from .pages import LoginPage, IndexPage, ErrorPage, UnavailablePage from .pages import LoginPage, IndexPage, ErrorPage, UnavailablePage
@ -30,7 +30,7 @@ from .pages import LoginPage, IndexPage, ErrorPage, UnavailablePage
__all__ = ['CaisseEpargne'] __all__ = ['CaisseEpargne']
class CaisseEpargne(BaseBrowser): class CaisseEpargne(Browser):
DOMAIN = 'www.caisse-epargne.fr' DOMAIN = 'www.caisse-epargne.fr'
PROTOCOL = 'https' PROTOCOL = 'https'
CERTHASH = ['dfff27d6db1fcdf1cea3ab8e3c1ca4f97c971262e95be49f3385b40c97fe640c', '9894ab2088630f341de821a09f1286c525f854f62ac186bd442368b4692c5969'] CERTHASH = ['dfff27d6db1fcdf1cea3ab8e3c1ca4f97c971262e95be49f3385b40c97fe640c', '9894ab2088630f341de821a09f1286c525f854f62ac186bd442368b4692c5969']
@ -43,10 +43,10 @@ class CaisseEpargne(BaseBrowser):
def __init__(self, nuser, *args, **kwargs): def __init__(self, nuser, *args, **kwargs):
self.nuser = nuser self.nuser = nuser
BaseBrowser.__init__(self, *args, **kwargs) Browser.__init__(self, *args, **kwargs)
def _certhash(self, domain, port=443): def _certhash(self, domain, port=443):
# XXX overload the BaseBrowser method to force use of TLSv1. # XXX overload the Browser method to force use of TLSv1.
certs = ssl.get_server_certificate((domain, port), ssl_version=ssl.PROTOCOL_TLSv1) certs = ssl.get_server_certificate((domain, port), ssl_version=ssl.PROTOCOL_TLSv1)
return hashlib.sha256(certs).hexdigest() return hashlib.sha256(certs).hexdigest()

View file

@ -22,7 +22,7 @@ import urllib
import lxml.etree import lxml.etree
from weboob.tools.browser import BaseBrowser from weboob.tools.browser import Browser
from weboob.tools.browser.decorators import id2url from weboob.tools.browser.decorators import id2url
from .pages import ChannelsPage, VideoPage from .pages import ChannelsPage, VideoPage
@ -42,7 +42,7 @@ class XMLParser(object):
return lxml.etree.XML(data.get_data(), parser) return lxml.etree.XML(data.get_data(), parser)
class CanalplusBrowser(BaseBrowser): class CanalplusBrowser(Browser):
DOMAIN = u'service.canal-plus.com' DOMAIN = u'service.canal-plus.com'
ENCODING = 'utf-8' ENCODING = 'utf-8'
PAGES = { PAGES = {
@ -60,7 +60,7 @@ class CanalplusBrowser(BaseBrowser):
} }
def __init__(self, quality, *args, **kwargs): def __init__(self, quality, *args, **kwargs):
BaseBrowser.__init__(self, parser=self.PARSER, *args, **kwargs) Browser.__init__(self, parser=self.PARSER, *args, **kwargs)
self.quality = self.FORMATS.get(quality, self.FORMATS['hd']) self.quality = self.FORMATS.get(quality, self.FORMATS['hd'])
def home(self): def home(self):

View file

@ -20,7 +20,7 @@
from datetime import datetime, date, time from datetime import datetime, date, time
from weboob.tools.browser import BaseBrowser from weboob.tools.browser import Browser
from weboob.tools.misc import to_unicode from weboob.tools.misc import to_unicode
from weboob.tools.browser import BrokenPageError from weboob.tools.browser import BrokenPageError
@ -28,11 +28,11 @@ from weboob.tools.browser import BrokenPageError
__all__ = ['CanalTP'] __all__ = ['CanalTP']
class CanalTP(BaseBrowser): class CanalTP(Browser):
DOMAIN = 'widget.canaltp.fr' DOMAIN = 'widget.canaltp.fr'
def __init__(self, **kwargs): def __init__(self, **kwargs):
BaseBrowser.__init__(self, '', **kwargs) Browser.__init__(self, '', **kwargs)
def iter_station_search(self, pattern): def iter_station_search(self, pattern):
url = u'http://widget.canaltp.fr/Prochains_departs_15122009/dev/gare.php?txtrech=%s' % unicode(pattern) url = u'http://widget.canaltp.fr/Prochains_departs_15122009/dev/gare.php?txtrech=%s' % unicode(pattern)

View file

@ -15,7 +15,7 @@ from weboob.capabilities.base import NotAvailable
from weboob.tools.misc import to_unicode from weboob.tools.misc import to_unicode
from weboob.tools.browser import Page from weboob.tools.browser import Page
from weboob.tools.browser import BrokenPageError from weboob.tools.browser import BrokenPageError
from weboob.tools.browser import BaseBrowser from weboob.tools.browser import Browser
from weboob.tools.browser.decorators import id2url from weboob.tools.browser.decorators import id2url
from weboob.capabilities.image import BaseImage from weboob.capabilities.image import BaseImage
from weboob.capabilities.video import BaseVideo from weboob.capabilities.video import BaseVideo
@ -100,7 +100,7 @@ class VideoPage(Page):
return video return video
class CappedBrowser(BaseBrowser): class CappedBrowser(Browser):
DOMAIN = 'capped.tv' DOMAIN = 'capped.tv'
PROTOCOL = 'http' PROTOCOL = 'http'
ENCODING = None ENCODING = None

View file

@ -18,7 +18,7 @@
# along with weboob. If not, see <http://www.gnu.org/licenses/>. # along with weboob. If not, see <http://www.gnu.org/licenses/>.
from weboob.tools.browser import BaseBrowser, BrowserIncorrectPassword from weboob.tools.browser import Browser, BrowserIncorrectPassword
from .pages import LoginPage, HomePage, HistoryPage, RentedPage from .pages import LoginPage, HomePage, HistoryPage, RentedPage
@ -27,7 +27,7 @@ __all__ = ['ChampslibresBrowser']
# Browser # Browser
class ChampslibresBrowser(BaseBrowser): class ChampslibresBrowser(Browser):
PROTOCOL = 'http' PROTOCOL = 'http'
ENCODING = 'utf-8' ENCODING = 'utf-8'
PAGES = { PAGES = {

View file

@ -17,7 +17,7 @@
# You should have received a copy of the GNU Affero General Public License # You should have received a copy of the GNU Affero General Public License
# along with weboob. If not, see <http://www.gnu.org/licenses/>. # along with weboob. If not, see <http://www.gnu.org/licenses/>.
from weboob.tools.browser import BaseBrowser from weboob.tools.browser import Browser
from .pages import IndexPage, TrackPage from .pages import IndexPage, TrackPage
@ -25,7 +25,7 @@ from .pages import IndexPage, TrackPage
__all__ = ['ChronopostBrowser'] __all__ = ['ChronopostBrowser']
class ChronopostBrowser(BaseBrowser): class ChronopostBrowser(Browser):
PROTOCOL = 'http' PROTOCOL = 'http'
DOMAIN = 'www.chronopost.fr' DOMAIN = 'www.chronopost.fr'
ENCODING = None ENCODING = None

View file

@ -21,7 +21,7 @@
from urlparse import urlsplit, parse_qsl, urlparse from urlparse import urlsplit, parse_qsl, urlparse
from datetime import datetime, timedelta from datetime import datetime, timedelta
from weboob.tools.browser import BaseBrowser, BrowserIncorrectPassword from weboob.tools.browser import Browser, BrowserIncorrectPassword
from weboob.capabilities.bank import Transfer, TransferError from weboob.capabilities.bank import Transfer, TransferError
from .pages import LoginPage, LoginErrorPage, AccountsPage, UserSpacePage, EmptyPage, \ from .pages import LoginPage, LoginErrorPage, AccountsPage, UserSpacePage, EmptyPage, \
@ -33,12 +33,12 @@ __all__ = ['CICBrowser']
# Browser # Browser
class CICBrowser(BaseBrowser): class CICBrowser(Browser):
PROTOCOL = 'https' PROTOCOL = 'https'
DOMAIN = 'www.cic.fr' DOMAIN = 'www.cic.fr'
CERTHASH = 'b7f681798d4f414fb5cb4032a0b6e8e0d61eeea564a1fb2c1c5a6fc351c70c50' CERTHASH = 'b7f681798d4f414fb5cb4032a0b6e8e0d61eeea564a1fb2c1c5a6fc351c70c50'
ENCODING = 'iso-8859-1' ENCODING = 'iso-8859-1'
USER_AGENT = BaseBrowser.USER_AGENTS['wget'] USER_AGENT = Browser.USER_AGENTS['wget']
PAGES = {'https://www.cic.fr/.*/fr/banques/particuliers/index.html': LoginPage, PAGES = {'https://www.cic.fr/.*/fr/banques/particuliers/index.html': LoginPage,
'https://www.cic.fr/.*/fr/identification/default.cgi': LoginErrorPage, 'https://www.cic.fr/.*/fr/identification/default.cgi': LoginErrorPage,
'https://www.cic.fr/.*/fr/banque/situation_financiere.cgi': AccountsPage, 'https://www.cic.fr/.*/fr/banque/situation_financiere.cgi': AccountsPage,

View file

@ -19,7 +19,7 @@
from weboob.capabilities.bank import Account from weboob.capabilities.bank import Account
from weboob.tools.browser import BaseBrowser, BrowserIncorrectPassword from weboob.tools.browser import Browser, BrowserIncorrectPassword
from .pages import LoginPage, SummaryPage, UselessPage, TransactionSearchPage, TransactionsPage, TransactionsCsvPage from .pages import LoginPage, SummaryPage, UselessPage, TransactionSearchPage, TransactionsPage, TransactionsCsvPage
@ -27,7 +27,7 @@ from .pages import LoginPage, SummaryPage, UselessPage, TransactionSearchPage, T
__all__ = ['CitelisBrowser'] __all__ = ['CitelisBrowser']
class CitelisBrowser(BaseBrowser): class CitelisBrowser(Browser):
PROTOCOL = 'https' PROTOCOL = 'https'
DOMAIN = 'adminpayment.citelis.fr' DOMAIN = 'adminpayment.citelis.fr'
ENCODING = 'UTF-8' ENCODING = 'UTF-8'
@ -45,7 +45,7 @@ class CitelisBrowser(BaseBrowser):
def __init__(self, merchant_id, *args, **kwargs): def __init__(self, merchant_id, *args, **kwargs):
self.merchant_id = merchant_id self.merchant_id = merchant_id
BaseBrowser.__init__(self, *args, **kwargs) Browser.__init__(self, *args, **kwargs)
def login(self): def login(self):
if not self.is_on_page(LoginPage): if not self.is_on_page(LoginPage):

View file

@ -23,7 +23,7 @@ from weboob.tools.backend import Module, BackendConfig
from weboob.tools.value import ValueBackendPassword from weboob.tools.value import ValueBackendPassword
from weboob.capabilities.base import NotAvailable from weboob.capabilities.base import NotAvailable
from weboob.tools.exceptions import BrowserIncorrectPassword, ParseError from weboob.tools.exceptions import BrowserIncorrectPassword, ParseError
from weboob.tools.browser2 import BaseBrowser from weboob.tools.browser2 import Browser
from re import match, compile, sub from re import match, compile, sub
from decimal import Decimal from decimal import Decimal
@ -84,7 +84,7 @@ class CmbModule(Module, CapBank):
) )
] ]
BROWSER = BaseBrowser BROWSER = Browser
islogged = False islogged = False
def login(self): def login(self):

View file

@ -18,7 +18,7 @@
# along with weboob. If not, see <http://www.gnu.org/licenses/>. # along with weboob. If not, see <http://www.gnu.org/licenses/>.
from weboob.tools.browser import BaseBrowser, BrowserIncorrectPassword from weboob.tools.browser import Browser, BrowserIncorrectPassword
from .pages import LoginPage, AccountsPage, TransactionsPage from .pages import LoginPage, AccountsPage, TransactionsPage
@ -26,7 +26,7 @@ from .pages import LoginPage, AccountsPage, TransactionsPage
__all__ = ['Cmso'] __all__ = ['Cmso']
class Cmso(BaseBrowser): class Cmso(Browser):
PROTOCOL = 'https' PROTOCOL = 'https'
DOMAIN = 'www.cmso.com' DOMAIN = 'www.cmso.com'
ENCODING = 'iso-8859-1' ENCODING = 'iso-8859-1'

View file

@ -17,14 +17,14 @@
# You should have received a copy of the GNU Affero General Public License # You should have received a copy of the GNU Affero General Public License
# along with weboob. If not, see <http://www.gnu.org/licenses/>. # along with weboob. If not, see <http://www.gnu.org/licenses/>.
from weboob.tools.browser import BaseBrowser from weboob.tools.browser import Browser
from .pages import TrackPage, ErrorPage from .pages import TrackPage, ErrorPage
__all__ = ['ColispriveBrowser'] __all__ = ['ColispriveBrowser']
class ColispriveBrowser(BaseBrowser): class ColispriveBrowser(Browser):
PROTOCOL = 'https' PROTOCOL = 'https'
DOMAIN = 'www.colisprive.com' DOMAIN = 'www.colisprive.com'
ENCODING = 'utf8' ENCODING = 'utf8'

View file

@ -18,17 +18,17 @@
# along with weboob. If not, see <http://www.gnu.org/licenses/>. # along with weboob. If not, see <http://www.gnu.org/licenses/>.
from weboob.tools.json import json from weboob.tools.json import json
from weboob.tools.browser import BaseBrowser, BrowserBanned from weboob.tools.browser import Browser, BrowserBanned
__all__ = ['ColissimoBrowser'] __all__ = ['ColissimoBrowser']
class ColissimoBrowser(BaseBrowser): class ColissimoBrowser(Browser):
PROTOCOL = 'http' PROTOCOL = 'http'
DOMAIN = 'www.laposte.fr' DOMAIN = 'www.laposte.fr'
ENCODING = None ENCODING = None
USER_AGENT = BaseBrowser.USER_AGENTS['android'] USER_AGENT = Browser.USER_AGENTS['android']
api_key = '6b252eb30d3afb15c47cf3fccee3dc17352dc2d6' api_key = '6b252eb30d3afb15c47cf3fccee3dc17352dc2d6'

View file

@ -18,7 +18,7 @@
# along with weboob. If not, see <http://www.gnu.org/licenses/>. # along with weboob. If not, see <http://www.gnu.org/licenses/>.
from weboob.tools.browser import BaseBrowser, BrowserIncorrectPassword from weboob.tools.browser import Browser, BrowserIncorrectPassword
from weboob.tools.date import LinearDateGuesser from weboob.tools.date import LinearDateGuesser
from weboob.capabilities.bank import Transfer, TransferError from weboob.capabilities.bank import Transfer, TransferError
from .pages import LoginPage, AccountsList from .pages import LoginPage, AccountsList
@ -30,10 +30,10 @@ import re
__all__ = ['CragrMobile'] __all__ = ['CragrMobile']
class CragrMobile(BaseBrowser): class CragrMobile(Browser):
PROTOCOL = 'https' PROTOCOL = 'https'
ENCODING = 'utf-8' ENCODING = 'utf-8'
USER_AGENT = BaseBrowser.USER_AGENTS['wget'] USER_AGENT = Browser.USER_AGENTS['wget']
# a session id that is sometimes added, and should be ignored when matching pages # a session id that is sometimes added, and should be ignored when matching pages
SESSION_REGEXP = '(?:|%s[A-Z0-9]+)' % re.escape(r';jsessionid=') SESSION_REGEXP = '(?:|%s[A-Z0-9]+)' % re.escape(r';jsessionid=')
@ -49,7 +49,7 @@ class CragrMobile(BaseBrowser):
'https://[^/]+/accounting/showAccountDetail.+': AccountsList, 'https://[^/]+/accounting/showAccountDetail.+': AccountsList,
'https://[^/]+/accounting/showMoreAccountOperations.*': AccountsList, 'https://[^/]+/accounting/showMoreAccountOperations.*': AccountsList,
} }
BaseBrowser.__init__(self, *args, **kwargs) Browser.__init__(self, *args, **kwargs)
def viewing_html(self): def viewing_html(self):
""" """
@ -82,7 +82,7 @@ class CragrMobile(BaseBrowser):
# Are we on the good page? # Are we on the good page?
if not self.is_on_page(LoginPage): if not self.is_on_page(LoginPage):
self.logger.debug('going to login page') self.logger.debug('going to login page')
BaseBrowser.home(self) Browser.home(self)
self.logger.debug('attempting to log in') self.logger.debug('attempting to log in')
self.page.login(self.username, self.password) self.page.login(self.username, self.password)
self.is_logging = False self.is_logging = False
@ -109,7 +109,7 @@ class CragrMobile(BaseBrowser):
return return
# simply go to http(s)://the.doma.in/ # simply go to http(s)://the.doma.in/
BaseBrowser.home(self) Browser.home(self)
if self.is_on_page(LoginPage): if self.is_on_page(LoginPage):
if not self.is_logged(): if not self.is_logged():

View file

@ -21,7 +21,7 @@
import urllib import urllib
import re import re
from weboob.tools.browser import BaseBrowser, BrowserIncorrectPassword from weboob.tools.browser import Browser, BrowserIncorrectPassword
from weboob.tools.date import LinearDateGuesser from weboob.tools.date import LinearDateGuesser
from .pages import HomePage, LoginPage, LoginErrorPage, AccountsPage, \ from .pages import HomePage, LoginPage, LoginErrorPage, AccountsPage, \
@ -31,7 +31,7 @@ from .pages import HomePage, LoginPage, LoginErrorPage, AccountsPage, \
__all__ = ['Cragr'] __all__ = ['Cragr']
class Cragr(BaseBrowser): class Cragr(Browser):
PROTOCOL = 'https' PROTOCOL = 'https'
ENCODING = 'ISO-8859-1' ENCODING = 'ISO-8859-1'
@ -54,7 +54,7 @@ class Cragr(BaseBrowser):
def __init__(self, website, *args, **kwargs): def __init__(self, website, *args, **kwargs):
self.DOMAIN = re.sub('^m\.', 'www.', website) self.DOMAIN = re.sub('^m\.', 'www.', website)
self.accounts_url = None self.accounts_url = None
BaseBrowser.__init__(self, *args, **kwargs) Browser.__init__(self, *args, **kwargs)
def home(self): def home(self):
self.login() self.login()

View file

@ -19,7 +19,7 @@
import urllib import urllib
from weboob.tools.browser import BaseBrowser, BrowserIncorrectPassword from weboob.tools.browser import Browser, BrowserIncorrectPassword
from .pages import LoginPage, LoggedPage, AccountsPage, TransactionsPage, TransactionsJSONPage, ComingTransactionsPage from .pages import LoginPage, LoggedPage, AccountsPage, TransactionsPage, TransactionsJSONPage, ComingTransactionsPage
@ -27,7 +27,7 @@ from .pages import LoginPage, LoggedPage, AccountsPage, TransactionsPage, Transa
__all__ = ['CreditCooperatif'] __all__ = ['CreditCooperatif']
class CreditCooperatif(BaseBrowser): class CreditCooperatif(Browser):
PROTOCOL = 'https' PROTOCOL = 'https'
ENCODING = 'iso-8859-15' ENCODING = 'iso-8859-15'
DOMAIN = "www.credit-cooperatif.coop" DOMAIN = "www.credit-cooperatif.coop"

View file

@ -17,7 +17,7 @@
# You should have received a copy of the GNU Affero General Public License # You should have received a copy of the GNU Affero General Public License
# along with weboob. If not, see <http://www.gnu.org/licenses/>. # along with weboob. If not, see <http://www.gnu.org/licenses/>.
from weboob.tools.browser import BaseBrowser, BrowserIncorrectPassword from weboob.tools.browser import Browser, BrowserIncorrectPassword
from .pages import LoginPage, AccountsPage, ITransactionsPage, TransactionsPage, ComingTransactionsPage, CardTransactionsPage from .pages import LoginPage, AccountsPage, ITransactionsPage, TransactionsPage, ComingTransactionsPage, CardTransactionsPage
@ -25,7 +25,7 @@ from .pages import LoginPage, AccountsPage, ITransactionsPage, TransactionsPage,
__all__ = ['CreditCooperatif'] __all__ = ['CreditCooperatif']
class CreditCooperatif(BaseBrowser): class CreditCooperatif(Browser):
PROTOCOL = 'https' PROTOCOL = 'https'
ENCODING = 'iso-8859-15' ENCODING = 'iso-8859-15'
DOMAIN = "www.coopanet.com" DOMAIN = "www.coopanet.com"
@ -40,7 +40,7 @@ class CreditCooperatif(BaseBrowser):
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
self.strong_auth = kwargs.pop('strong_auth', False) self.strong_auth = kwargs.pop('strong_auth', False)
BaseBrowser.__init__(self, *args, **kwargs) Browser.__init__(self, *args, **kwargs)
def home(self): def home(self):
self.location("/banque/sso/") self.location("/banque/sso/")

View file

@ -21,7 +21,7 @@
import re import re
import urllib import urllib
from weboob.tools.browser import BaseBrowser, BrowserIncorrectPassword from weboob.tools.browser import Browser, BrowserIncorrectPassword
from .pages import LoginPage, AccountsPage, ProAccountsPage, TransactionsPage, ProTransactionsPage from .pages import LoginPage, AccountsPage, ProAccountsPage, TransactionsPage, ProTransactionsPage
@ -29,7 +29,7 @@ from .pages import LoginPage, AccountsPage, ProAccountsPage, TransactionsPage, P
__all__ = ['CreditDuNordBrowser'] __all__ = ['CreditDuNordBrowser']
class CreditDuNordBrowser(BaseBrowser): class CreditDuNordBrowser(Browser):
PROTOCOL = 'https' PROTOCOL = 'https'
ENCODING = 'UTF-8' ENCODING = 'UTF-8'
PAGES = {'https://[^/]+/?': LoginPage, PAGES = {'https://[^/]+/?': LoginPage,
@ -43,7 +43,7 @@ class CreditDuNordBrowser(BaseBrowser):
def __init__(self, website, *args, **kwargs): def __init__(self, website, *args, **kwargs):
self.DOMAIN = website self.DOMAIN = website
BaseBrowser.__init__(self, *args, **kwargs) Browser.__init__(self, *args, **kwargs)
def is_logged(self): def is_logged(self):
return self.page is not None and not self.is_on_page(LoginPage) return self.page is not None and not self.is_on_page(LoginPage)

View file

@ -18,7 +18,7 @@
# along with weboob. If not, see <http://www.gnu.org/licenses/>. # along with weboob. If not, see <http://www.gnu.org/licenses/>.
from weboob.tools.browser import BaseBrowser, BrowserHTTPNotFound from weboob.tools.browser import Browser, BrowserHTTPNotFound
from .pages import RecipePage, ResultsPage from .pages import RecipePage, ResultsPage
@ -26,11 +26,11 @@ from .pages import RecipePage, ResultsPage
__all__ = ['CuisineazBrowser'] __all__ = ['CuisineazBrowser']
class CuisineazBrowser(BaseBrowser): class CuisineazBrowser(Browser):
DOMAIN = 'www.cuisineaz.com' DOMAIN = 'www.cuisineaz.com'
PROTOCOL = 'http' PROTOCOL = 'http'
ENCODING = 'utf-8' ENCODING = 'utf-8'
USER_AGENT = BaseBrowser.USER_AGENTS['wget'] USER_AGENT = Browser.USER_AGENTS['wget']
PAGES = { PAGES = {
'http://www.cuisineaz.com/recettes/recherche_v2.aspx\?recherche=.*': ResultsPage, 'http://www.cuisineaz.com/recettes/recherche_v2.aspx\?recherche=.*': ResultsPage,
'http://www.cuisineaz.com/recettes/.*[0-9]*.aspx': RecipePage, 'http://www.cuisineaz.com/recettes/.*[0-9]*.aspx': RecipePage,

View file

@ -19,7 +19,7 @@
from urllib import quote_plus from urllib import quote_plus
from weboob.tools.browser import BaseBrowser from weboob.tools.browser import Browser
from weboob.tools.browser.decorators import id2url from weboob.tools.browser.decorators import id2url
from .pages import IndexPage, VideoPage, KidsVideoPage from .pages import IndexPage, VideoPage, KidsVideoPage
@ -29,7 +29,7 @@ from .video import DailymotionVideo
__all__ = ['DailymotionBrowser'] __all__ = ['DailymotionBrowser']
class DailymotionBrowser(BaseBrowser): class DailymotionBrowser(Browser):
DOMAIN = 'www.dailymotion.com' DOMAIN = 'www.dailymotion.com'
ENCODING = None ENCODING = None
PAGES = {r'http://[w\.]*dailymotion\.com/1': IndexPage, PAGES = {r'http://[w\.]*dailymotion\.com/1': IndexPage,

View file

@ -18,7 +18,7 @@
# along with weboob. If not, see <http://www.gnu.org/licenses/>. # along with weboob. If not, see <http://www.gnu.org/licenses/>.
from weboob.tools.browser import BaseBrowser, BrowserIncorrectPassword from weboob.tools.browser import Browser, BrowserIncorrectPassword
from .pages import LoginPage, DashboardPage, OperationsPage, LCRPage from .pages import LoginPage, DashboardPage, OperationsPage, LCRPage
@ -26,7 +26,7 @@ from .pages import LoginPage, DashboardPage, OperationsPage, LCRPage
__all__ = ['DelubacBrowser'] __all__ = ['DelubacBrowser']
class DelubacBrowser(BaseBrowser): class DelubacBrowser(Browser):
PROTOCOL = 'https' PROTOCOL = 'https'
DOMAIN = 'vbankonline.delubac.com' DOMAIN = 'vbankonline.delubac.com'
ENCODING = None ENCODING = None

View file

@ -23,7 +23,7 @@ import re
import hashlib import hashlib
import lxml import lxml
from weboob.tools.browser import BaseBrowser, BrowserHTTPNotFound, BrowserHTTPError, BrowserIncorrectPassword, BrokenPageError from weboob.tools.browser import Browser, BrowserHTTPNotFound, BrowserHTTPError, BrowserIncorrectPassword, BrokenPageError
from weboob.capabilities.messages import CantSendMessage from weboob.capabilities.messages import CantSendMessage
from .pages.index import IndexPage, LoginPage from .pages.index import IndexPage, LoginPage
@ -35,7 +35,7 @@ from .tools import id2url, url2id
# Browser # Browser
class DLFP(BaseBrowser): class DLFP(Browser):
DOMAIN = 'linuxfr.org' DOMAIN = 'linuxfr.org'
PROTOCOL = 'https' PROTOCOL = 'https'
PAGES = {'https?://[^/]*linuxfr\.org/?': IndexPage, PAGES = {'https?://[^/]*linuxfr\.org/?': IndexPage,

View file

@ -17,7 +17,7 @@
# You should have received a copy of the GNU Affero General Public License # You should have received a copy of the GNU Affero General Public License
# along with weboob. If not, see <http://www.gnu.org/licenses/>. # along with weboob. If not, see <http://www.gnu.org/licenses/>.
from weboob.tools.browser import BaseBrowser, BrowserIncorrectPassword from weboob.tools.browser import Browser, BrowserIncorrectPassword
from weboob.capabilities.bill import Detail from weboob.capabilities.bill import Detail
from decimal import Decimal from decimal import Decimal
from .pages import LoginPage, FirstRedirectionPage, SecondRedirectionPage, OtherPage, AccountPage, BillsPage, LastPaymentsPage, LastPaymentsPage2 from .pages import LoginPage, FirstRedirectionPage, SecondRedirectionPage, OtherPage, AccountPage, BillsPage, LastPaymentsPage, LastPaymentsPage2
@ -25,7 +25,7 @@ from .pages import LoginPage, FirstRedirectionPage, SecondRedirectionPage, Other
__all__ = ['EdfBrowser'] __all__ = ['EdfBrowser']
class EdfBrowser(BaseBrowser): class EdfBrowser(Browser):
PROTOCOL = 'https' PROTOCOL = 'https'
DOMAIN = 'monagencepart.edf.fr' DOMAIN = 'monagencepart.edf.fr'
ENCODING = None ENCODING = None

View file

@ -17,7 +17,7 @@
# You should have received a copy of the GNU Affero General Public License # You should have received a copy of the GNU Affero General Public License
# along with weboob. If not, see <http://www.gnu.org/licenses/>. # along with weboob. If not, see <http://www.gnu.org/licenses/>.
from weboob.tools.browser import BaseBrowser, BrowserIncorrectPassword from weboob.tools.browser import Browser, BrowserIncorrectPassword
from urllib import urlencode from urllib import urlencode
from .pages import IndexPage, GalleryPage, ImagePage, HomePage, LoginPage from .pages import IndexPage, GalleryPage, ImagePage, HomePage, LoginPage
@ -27,7 +27,7 @@ from .gallery import EHentaiImage
__all__ = ['EHentaiBrowser'] __all__ = ['EHentaiBrowser']
class EHentaiBrowser(BaseBrowser): class EHentaiBrowser(Browser):
ENCODING = None ENCODING = None
PAGES = { PAGES = {
r'http://[^/]+/': IndexPage, r'http://[^/]+/': IndexPage,
@ -41,7 +41,7 @@ class EHentaiBrowser(BaseBrowser):
def __init__(self, domain, username, password, *args, **kwargs): def __init__(self, domain, username, password, *args, **kwargs):
self.DOMAIN = domain self.DOMAIN = domain
self.logged = False self.logged = False
BaseBrowser.__init__(self, parser=('lxmlsoup',), *args, **kwargs) Browser.__init__(self, parser=('lxmlsoup',), *args, **kwargs)
if password: if password:
self.login(username, password) self.login(username, password)

View file

@ -19,7 +19,7 @@
# along with weboob. If not, see <http://www.gnu.org/licenses/>. # along with weboob. If not, see <http://www.gnu.org/licenses/>.
from weboob.tools.browser import BaseBrowser from weboob.tools.browser import Browser
from weboob.tools.browser.decorators import id2url from weboob.tools.browser.decorators import id2url
#from .pages.index import IndexPage #from .pages.index import IndexPage
@ -30,7 +30,7 @@ from .video import EuroparlVideo
__all__ = ['EuroparlBrowser'] __all__ = ['EuroparlBrowser']
class EuroparlBrowser(BaseBrowser): class EuroparlBrowser(Browser):
DOMAIN = 'europarl.europa.eu' DOMAIN = 'europarl.europa.eu'
ENCODING = None ENCODING = None
PAGES = {r'http://[w\.]*europarl\.europa\.eu/ep-live/(?P<lang>\w+)/committees/video\?.*event=(?P<id>[^&]+).*': VideoPage, PAGES = {r'http://[w\.]*europarl\.europa\.eu/ep-live/(?P<lang>\w+)/committees/video\?.*event=(?P<id>[^&]+).*': VideoPage,

View file

@ -22,7 +22,7 @@
from datetime import date from datetime import date
from dateutil.relativedelta import relativedelta from dateutil.relativedelta import relativedelta
from weboob.tools.browser import BaseBrowser, BrowserIncorrectPassword from weboob.tools.browser import Browser, BrowserIncorrectPassword
from .pages.login import LoginPage from .pages.login import LoginPage
from .pages.accounts_list import GlobalAccountsList, AccountsList, AccountHistoryPage from .pages.accounts_list import GlobalAccountsList, AccountsList, AccountHistoryPage
@ -30,7 +30,7 @@ from .pages.accounts_list import GlobalAccountsList, AccountsList, AccountHistor
__all__ = ['Fortuneo'] __all__ = ['Fortuneo']
class Fortuneo(BaseBrowser): class Fortuneo(Browser):
DOMAIN_LOGIN = 'www.fortuneo.fr' DOMAIN_LOGIN = 'www.fortuneo.fr'
DOMAIN = 'www.fortuneo.fr' DOMAIN = 'www.fortuneo.fr'
PROTOCOL = 'https' PROTOCOL = 'https'
@ -49,7 +49,7 @@ class Fortuneo(BaseBrowser):
} }
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
BaseBrowser.__init__(self, *args, **kwargs) Browser.__init__(self, *args, **kwargs)
def home(self): def home(self):
"""main page (login)""" """main page (login)"""

View file

@ -18,12 +18,12 @@
# along with weboob. If not, see <http://www.gnu.org/licenses/>. # along with weboob. If not, see <http://www.gnu.org/licenses/>.
from weboob.tools.browser import BaseBrowser from weboob.tools.browser import Browser
from .pages.board import BoardPage from .pages.board import BoardPage
class FourChan(BaseBrowser): class FourChan(Browser):
DOMAIN = 'boards.4chan.org' DOMAIN = 'boards.4chan.org'
PAGES = { PAGES = {
'http://boards.4chan.org/\w+/': BoardPage, 'http://boards.4chan.org/\w+/': BoardPage,

View file

@ -18,7 +18,7 @@
# along with weboob. If not, see <http://www.gnu.org/licenses/>. # along with weboob. If not, see <http://www.gnu.org/licenses/>.
from weboob.tools.browser import BaseBrowser, BrowserIncorrectPassword from weboob.tools.browser import Browser, BrowserIncorrectPassword
from .pages import LoginPage, AccountsPage, TransactionsPage from .pages import LoginPage, AccountsPage, TransactionsPage
@ -26,7 +26,7 @@ from .pages import LoginPage, AccountsPage, TransactionsPage
__all__ = ['GanAssurances'] __all__ = ['GanAssurances']
class GanAssurances(BaseBrowser): class GanAssurances(Browser):
PROTOCOL = 'https' PROTOCOL = 'https'
PAGES = {'https://[^/]+/wps/portal/login.*': LoginPage, PAGES = {'https://[^/]+/wps/portal/login.*': LoginPage,
'https://[^/]+/wps/myportal/TableauDeBord': AccountsPage, 'https://[^/]+/wps/myportal/TableauDeBord': AccountsPage,
@ -35,7 +35,7 @@ class GanAssurances(BaseBrowser):
def __init__(self, website, *args, **kwargs): def __init__(self, website, *args, **kwargs):
self.DOMAIN = website self.DOMAIN = website
BaseBrowser.__init__(self, *args, **kwargs) Browser.__init__(self, *args, **kwargs)
def is_logged(self): def is_logged(self):
return self.page is not None and not self.is_on_page(LoginPage) return self.page is not None and not self.is_on_page(LoginPage)

View file

@ -18,7 +18,7 @@
# along with weboob. If not, see <http://www.gnu.org/licenses/>. # along with weboob. If not, see <http://www.gnu.org/licenses/>.
from weboob.tools.browser import BaseBrowser from weboob.tools.browser import Browser
from .pages.index import IndexPage, LoginPage from .pages.index import IndexPage, LoginPage
from .pages.torrents import TorrentsPage from .pages.torrents import TorrentsPage
@ -27,7 +27,7 @@ from .pages.torrents import TorrentsPage
__all__ = ['GazelleBrowser'] __all__ = ['GazelleBrowser']
class GazelleBrowser(BaseBrowser): class GazelleBrowser(Browser):
PAGES = {'https?://[^/]+/?(index.php)?': IndexPage, PAGES = {'https?://[^/]+/?(index.php)?': IndexPage,
'https?://[^/]+/login.php': LoginPage, 'https?://[^/]+/login.php': LoginPage,
'https?://[^/]+/torrents.php.*': TorrentsPage, 'https?://[^/]+/torrents.php.*': TorrentsPage,
@ -36,7 +36,7 @@ class GazelleBrowser(BaseBrowser):
def __init__(self, protocol, domain, *args, **kwargs): def __init__(self, protocol, domain, *args, **kwargs):
self.DOMAIN = domain self.DOMAIN = domain
self.PROTOCOL = protocol self.PROTOCOL = protocol
BaseBrowser.__init__(self, *args, **kwargs) Browser.__init__(self, *args, **kwargs)
def login(self): def login(self):
if not self.is_on_page(LoginPage): if not self.is_on_page(LoginPage):

View file

@ -20,7 +20,7 @@
import urllib import urllib
from weboob.tools.browser import BaseBrowser, BrowserIncorrectPassword, BrowserUnavailable,\ from weboob.tools.browser import Browser, BrowserIncorrectPassword, BrowserUnavailable,\
BrowserBanned BrowserBanned
from weboob.tools.browser.decorators import id2url from weboob.tools.browser.decorators import id2url
@ -36,7 +36,7 @@ from weboob.capabilities.base import NotAvailable
__all__ = ['GDCVaultBrowser'] __all__ = ['GDCVaultBrowser']
class GDCVaultBrowser(BaseBrowser): class GDCVaultBrowser(Browser):
DOMAIN = 'gdcvault.com' DOMAIN = 'gdcvault.com'
ENCODING = 'utf-8' ENCODING = 'utf-8'
PAGES = {r'http://[w\.]*gdcvault.com/play/(?P<id>[\d]+)/?.*': VideoPage, PAGES = {r'http://[w\.]*gdcvault.com/play/(?P<id>[\d]+)/?.*': VideoPage,

View file

@ -18,13 +18,13 @@
# along with weboob. If not, see <http://www.gnu.org/licenses/>. # along with weboob. If not, see <http://www.gnu.org/licenses/>.
import StringIO import StringIO
from weboob.tools.browser import BaseBrowser, BrowserIncorrectPassword from weboob.tools.browser import Browser, BrowserIncorrectPassword
from .pages import LoginPage, HomePage, AccountPage, TimeoutPage, HistoryPage, PdfPage from .pages import LoginPage, HomePage, AccountPage, TimeoutPage, HistoryPage, PdfPage
__all__ = ['GdfSuez'] __all__ = ['GdfSuez']
class GdfSuez(BaseBrowser): class GdfSuez(Browser):
PROTOCOL = 'https' PROTOCOL = 'https'
DOMAIN = 'www.gdfsuez-dolcevita.fr' DOMAIN = 'www.gdfsuez-dolcevita.fr'
PAGES = {'.*portail/clients.*?_nfpb=true&_pageLabel=page_identification': LoginPage, PAGES = {'.*portail/clients.*?_nfpb=true&_pageLabel=page_identification': LoginPage,
@ -40,7 +40,7 @@ class GdfSuez(BaseBrowser):
historyp = '/portailClients/client/p/page_historique_de_mes_factures' historyp = '/portailClients/client/p/page_historique_de_mes_factures'
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
BaseBrowser.__init__(self, *args, **kwargs) Browser.__init__(self, *args, **kwargs)
def home(self): def home(self):
self.location(self.homep) self.location(self.homep)

View file

@ -21,7 +21,7 @@
from weboob.capabilities.geolocip import CapGeolocIp, IpLocation from weboob.capabilities.geolocip import CapGeolocIp, IpLocation
from weboob.tools.backend import Module from weboob.tools.backend import Module
from weboob.tools.browser import BaseBrowser, BrowserUnavailable from weboob.tools.browser import Browser, BrowserUnavailable
__all__ = ['GeolocIpModule'] __all__ = ['GeolocIpModule']
@ -34,7 +34,7 @@ class GeolocIpModule(Module, CapGeolocIp):
VERSION = '1.0' VERSION = '1.0'
LICENSE = 'AGPLv3+' LICENSE = 'AGPLv3+'
DESCRIPTION = u"GeolocIP IP addresses geolocation service" DESCRIPTION = u"GeolocIP IP addresses geolocation service"
BROWSER = BaseBrowser BROWSER = Browser
def get_location(self, ipaddr): def get_location(self, ipaddr):
with self.browser: with self.browser:

View file

@ -18,7 +18,7 @@
# along with weboob. If not, see <http://www.gnu.org/licenses/>. # along with weboob. If not, see <http://www.gnu.org/licenses/>.
from weboob.tools.browser import BaseBrowser from weboob.tools.browser import Browser
from weboob.tools.json import json as json_module from weboob.tools.json import json as json_module
from base64 import b64encode from base64 import b64encode
import datetime import datetime
@ -31,14 +31,14 @@ __all__ = ['GithubBrowser']
class GithubBrowser(BaseBrowser): class GithubBrowser(Browser):
PROTOCOL = 'https' PROTOCOL = 'https'
DOMAIN = 'api.github.com' DOMAIN = 'api.github.com'
ENCODING = 'utf-8' ENCODING = 'utf-8'
def __init__(self, *a, **kw): def __init__(self, *a, **kw):
kw['parser'] = 'json' kw['parser'] = 'json'
BaseBrowser.__init__(self, *a, **kw) Browser.__init__(self, *a, **kw)
self.fewer_requests = not bool(self.username) self.fewer_requests = not bool(self.username)
def home(self): def home(self):

View file

@ -20,7 +20,7 @@
import urllib import urllib
from weboob.tools.browser import BaseBrowser from weboob.tools.browser import Browser
from .pages import TranslatePage from .pages import TranslatePage
@ -28,16 +28,16 @@ from .pages import TranslatePage
__all__ = ['GoogleTranslateBrowser'] __all__ = ['GoogleTranslateBrowser']
class GoogleTranslateBrowser(BaseBrowser): class GoogleTranslateBrowser(Browser):
DOMAIN = 'translate.google.com' DOMAIN = 'translate.google.com'
ENCODING = 'UTF-8' ENCODING = 'UTF-8'
USER_AGENT = BaseBrowser.USER_AGENTS['desktop_firefox'] USER_AGENT = Browser.USER_AGENTS['desktop_firefox']
PAGES = { PAGES = {
'https?://translate\.google\.com': TranslatePage 'https?://translate\.google\.com': TranslatePage
} }
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
BaseBrowser.__init__(self, *args, **kwargs) Browser.__init__(self, *args, **kwargs)
def translate(self, source, to, text): def translate(self, source, to, text):
""" """

View file

@ -17,7 +17,7 @@
# You should have received a copy of the GNU Affero General Public License # You should have received a copy of the GNU Affero General Public License
# along with weboob. If not, see <http://www.gnu.org/licenses/>. # along with weboob. If not, see <http://www.gnu.org/licenses/>.
from weboob.tools.browser import BaseBrowser, BrowserIncorrectPassword from weboob.tools.browser import Browser, BrowserIncorrectPassword
from weboob.tools.json import json as simplejson from weboob.tools.json import json as simplejson
from weboob.capabilities.audio import BaseAudio, Album, Playlist from weboob.capabilities.audio import BaseAudio, Album, Playlist
from weboob.capabilities.image import BaseImage from weboob.capabilities.image import BaseImage
@ -42,7 +42,7 @@ class APIError(Exception):
pass pass
class GroovesharkBrowser(BaseBrowser): class GroovesharkBrowser(Browser):
PROTOCOL = 'http' PROTOCOL = 'http'
DOMAIN = 'html5.grooveshark.com' DOMAIN = 'html5.grooveshark.com'
API_URL = 'https://html5.grooveshark.com/more.php' API_URL = 'https://html5.grooveshark.com/more.php'

View file

@ -18,7 +18,7 @@
# along with weboob. If not, see <http://www.gnu.org/licenses/>. # along with weboob. If not, see <http://www.gnu.org/licenses/>.
from weboob.tools.browser import BaseBrowser from weboob.tools.browser import Browser
from weboob.tools.date import datetime from weboob.tools.date import datetime
from weboob.tools.parsers.jsonparser import json from weboob.tools.parsers.jsonparser import json
from urllib import urlencode from urllib import urlencode
@ -29,14 +29,14 @@ from urllib import urlencode
__all__ = ['GuerrillamailBrowser'] __all__ = ['GuerrillamailBrowser']
class GuerrillamailBrowser(BaseBrowser): class GuerrillamailBrowser(Browser):
PROTOCOL = 'https' PROTOCOL = 'https'
DOMAIN = 'www.guerrillamail.com' DOMAIN = 'www.guerrillamail.com'
ENCODING = 'utf-8' ENCODING = 'utf-8'
def __init__(self, *args, **kw): def __init__(self, *args, **kw):
kw['parser'] = 'raw' kw['parser'] = 'raw'
BaseBrowser.__init__(self, *args, **kw) Browser.__init__(self, *args, **kw)
def _get_unicode(self, url, *a): def _get_unicode(self, url, *a):
return self.get_document(self.openurl(url, *a)).decode(self.ENCODING, 'replace') return self.get_document(self.openurl(url, *a)).decode(self.ENCODING, 'replace')

View file

@ -18,14 +18,14 @@
# along with weboob. If not, see <http://www.gnu.org/licenses/>. # along with weboob. If not, see <http://www.gnu.org/licenses/>.
from weboob.tools.browser import BaseBrowser from weboob.tools.browser import Browser
from .pages import ValidationPage, HomePage, HistoryPage, StoryPage, AuthorPage from .pages import ValidationPage, HomePage, HistoryPage, StoryPage, AuthorPage
# Browser # Browser
class HDSBrowser(BaseBrowser): class HDSBrowser(Browser):
ENCODING = 'ISO-8859-1' ENCODING = 'ISO-8859-1'
DOMAIN = 'histoires-de-sexe.net' DOMAIN = 'histoires-de-sexe.net'
PAGES = {'http://histoires-de-sexe.net/': ValidationPage, PAGES = {'http://histoires-de-sexe.net/': ValidationPage,

View file

@ -23,7 +23,7 @@ import urllib
import mechanize import mechanize
from datetime import datetime from datetime import datetime
from weboob.tools.browser import BaseBrowser, BrowserIncorrectPassword, BrowserPasswordExpired from weboob.tools.browser import Browser, BrowserIncorrectPassword, BrowserPasswordExpired
from weboob.capabilities.bank import TransferError, Transfer from weboob.capabilities.bank import TransferError, Transfer
from .perso.accounts_list import AccountsList, AccountPrelevement from .perso.accounts_list import AccountsList, AccountPrelevement
@ -35,7 +35,7 @@ from .perso.messages import MessagePage, MessagesPage
__all__ = ['HelloBank'] __all__ = ['HelloBank']
class HelloBank(BaseBrowser): class HelloBank(Browser):
DOMAIN = 'client.hellobank.fr' DOMAIN = 'client.hellobank.fr'
PROTOCOL = 'https' PROTOCOL = 'https'
ENCODING = None # refer to the HTML encoding ENCODING = None # refer to the HTML encoding
@ -55,7 +55,7 @@ class HelloBank(BaseBrowser):
} }
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
BaseBrowser.__init__(self, *args, **kwargs) Browser.__init__(self, *args, **kwargs)
def home(self): def home(self):
self.location('https://client.hellobank.fr/banque/portail/digitale/HomeConnexion?type=homeconnex') self.location('https://client.hellobank.fr/banque/portail/digitale/HomeConnexion?type=homeconnex')

View file

@ -20,7 +20,7 @@
import re import re
from HTMLParser import HTMLParser from HTMLParser import HTMLParser
from weboob.tools.browser import BaseBrowser, BrowserHTTPNotFound from weboob.tools.browser import Browser, BrowserHTTPNotFound
from weboob.capabilities.base import NotAvailable, NotLoaded from weboob.capabilities.base import NotAvailable, NotLoaded
from weboob.capabilities.cinema import Movie, Person from weboob.capabilities.cinema import Movie, Person
from weboob.tools.json import json from weboob.tools.json import json
@ -32,11 +32,11 @@ from datetime import datetime
__all__ = ['ImdbBrowser'] __all__ = ['ImdbBrowser']
class ImdbBrowser(BaseBrowser): class ImdbBrowser(Browser):
DOMAIN = 'www.imdb.com' DOMAIN = 'www.imdb.com'
PROTOCOL = 'http' PROTOCOL = 'http'
ENCODING = 'utf-8' ENCODING = 'utf-8'
USER_AGENT = BaseBrowser.USER_AGENTS['wget'] USER_AGENT = Browser.USER_AGENTS['wget']
PAGES = { PAGES = {
'http://www.imdb.com/title/tt[0-9]*/fullcredits.*': MovieCrewPage, 'http://www.imdb.com/title/tt[0-9]*/fullcredits.*': MovieCrewPage,
'http://www.imdb.com/title/tt[0-9]*/releaseinfo.*': ReleasePage, 'http://www.imdb.com/title/tt[0-9]*/releaseinfo.*': ReleasePage,

View file

@ -18,7 +18,7 @@
# along with weboob. If not, see <http://www.gnu.org/licenses/>. # along with weboob. If not, see <http://www.gnu.org/licenses/>.
from weboob.tools.browser import BaseBrowser from weboob.tools.browser import Browser
from weboob.tools.browser.decorators import id2url from weboob.tools.browser.decorators import id2url
from .pages.video import VideoPage from .pages.video import VideoPage
@ -29,7 +29,7 @@ from .video import InaVideo
__all__ = ['InaBrowser'] __all__ = ['InaBrowser']
class InaBrowser(BaseBrowser): class InaBrowser(Browser):
DOMAIN = 'ina.fr' DOMAIN = 'ina.fr'
PAGES = {'http://player.ina.fr/notices/.+\.mrss': (VideoPage, 'xml'), PAGES = {'http://player.ina.fr/notices/.+\.mrss': (VideoPage, 'xml'),
'http://boutique\.ina\.fr/recherche/.+': SearchPage, 'http://boutique\.ina\.fr/recherche/.+': SearchPage,

View file

@ -20,10 +20,10 @@
from .pages.article import ArticlePage from .pages.article import ArticlePage
from .pages.inrockstv import InrocksTvPage from .pages.inrockstv import InrocksTvPage
from weboob.tools.browser import BaseBrowser from weboob.tools.browser import Browser
class NewspaperInrocksBrowser(BaseBrowser): class NewspaperInrocksBrowser(Browser):
"NewspaperInrocksBrowser class" "NewspaperInrocksBrowser class"
PAGES = { PAGES = {
'http://www.lesinrocks.com/(?!inrockstv).+/.*': ArticlePage, 'http://www.lesinrocks.com/(?!inrockstv).+/.*': ArticlePage,

View file

@ -24,7 +24,7 @@ import re
from weboob.capabilities.gallery import CapGallery, BaseGallery, BaseImage from weboob.capabilities.gallery import CapGallery, BaseGallery, BaseImage
from weboob.tools.json import json from weboob.tools.json import json
from weboob.tools.backend import Module from weboob.tools.backend import Module
from weboob.tools.browser import BaseBrowser, Page from weboob.tools.browser import Browser, Page
__all__ = ['IzneoModule'] __all__ = ['IzneoModule']
@ -47,7 +47,7 @@ class ReaderV2(Page):
(page['expires'], page['token'], ean, width, page['page']))) (page['expires'], page['token'], ean, width, page['page'])))
class IzneoBrowser(BaseBrowser): class IzneoBrowser(Browser):
PAGES = {r'http://.+\.izneo.\w+/readv2-.+': ReaderV2} PAGES = {r'http://.+\.izneo.\w+/readv2-.+': ReaderV2}
def iter_gallery_images(self, gallery): def iter_gallery_images(self, gallery):

View file

@ -19,7 +19,7 @@
import urllib import urllib
from weboob.tools.browser import BaseBrowser from weboob.tools.browser import Browser
from weboob.tools.browser.decorators import id2url from weboob.tools.browser.decorators import id2url
from .video import JacquieEtMichelVideo from .video import JacquieEtMichelVideo
@ -29,7 +29,7 @@ from .pages import VideoPage, ResultsPage
__all__ = ['JacquieEtMichelBrowser'] __all__ = ['JacquieEtMichelBrowser']
class JacquieEtMichelBrowser(BaseBrowser): class JacquieEtMichelBrowser(Browser):
DOMAIN = u'jacquieetmicheltv.net' DOMAIN = u'jacquieetmicheltv.net'
ENCODING = None ENCODING = None
PAGES = {r'https?://.*jacquieetmicheltv.net/': ResultsPage, PAGES = {r'https?://.*jacquieetmicheltv.net/': ResultsPage,

View file

@ -19,13 +19,13 @@
import datetime import datetime
from weboob.tools.browser import BaseBrowser from weboob.tools.browser import Browser
__all__ = ['VelibBrowser'] __all__ = ['VelibBrowser']
class VelibBrowser(BaseBrowser): class VelibBrowser(Browser):
ENCODING = 'utf-8' ENCODING = 'utf-8'
API_KEY = '2282a34b49cf45d8129cdf93d88762914cece88b' API_KEY = '2282a34b49cf45d8129cdf93d88762914cece88b'
@ -33,7 +33,7 @@ class VelibBrowser(BaseBrowser):
def __init__(self, *a, **kw): def __init__(self, *a, **kw):
kw['parser'] = 'json' kw['parser'] = 'json'
BaseBrowser.__init__(self, *a, **kw) Browser.__init__(self, *a, **kw)
def do_get(self, path, **query): def do_get(self, path, **query):
qs = '&'.join('%s=%s' % kv for kv in query.items()) qs = '&'.join('%s=%s' % kv for kv in query.items())

View file

@ -18,14 +18,14 @@
# along with weboob. If not, see <http://www.gnu.org/licenses/>. # along with weboob. If not, see <http://www.gnu.org/licenses/>.
from weboob.tools.browser import BaseBrowser from weboob.tools.browser import Browser
from .pages import RoadmapSearchPage, RoadmapResultsPage, RoadmapPage, RoadmapAmbiguity from .pages import RoadmapSearchPage, RoadmapResultsPage, RoadmapPage, RoadmapAmbiguity
__all__ = ['JVMalin'] __all__ = ['JVMalin']
class JVMalin(BaseBrowser): class JVMalin(Browser):
DOMAIN = 'www.jvmalin.fr' DOMAIN = 'www.jvmalin.fr'
PAGES = { PAGES = {
'http://www\.jvmalin\.fr/Itineraires/Recherche.*': RoadmapSearchPage, 'http://www\.jvmalin\.fr/Itineraires/Recherche.*': RoadmapSearchPage,
@ -34,7 +34,7 @@ class JVMalin(BaseBrowser):
} }
def __init__(self, **kwargs): def __init__(self, **kwargs):
BaseBrowser.__init__(self, '', **kwargs) Browser.__init__(self, '', **kwargs)
def get_roadmap(self, departure, arrival, filters): def get_roadmap(self, departure, arrival, filters):
self.location('/Itineraires/Recherche') self.location('/Itineraires/Recherche')

View file

@ -18,7 +18,7 @@
# along with weboob. If not, see <http://www.gnu.org/licenses/>. # along with weboob. If not, see <http://www.gnu.org/licenses/>.
from weboob.tools.browser import BaseBrowser, BrowserHTTPNotFound from weboob.tools.browser import Browser, BrowserHTTPNotFound
from .pages import TorrentsPage, TorrentPage from .pages import TorrentsPage, TorrentPage
@ -26,11 +26,11 @@ from .pages import TorrentsPage, TorrentPage
__all__ = ['KickassBrowser'] __all__ = ['KickassBrowser']
class KickassBrowser(BaseBrowser): class KickassBrowser(Browser):
DOMAIN = 'kickass.to' DOMAIN = 'kickass.to'
PROTOCOL = 'https' PROTOCOL = 'https'
ENCODING = 'utf-8' ENCODING = 'utf-8'
USER_AGENT = BaseBrowser.USER_AGENTS['wget'] USER_AGENT = Browser.USER_AGENTS['wget']
PAGES = { PAGES = {
'https://kickass.to/usearch/.*field=seeders&sorder=desc': TorrentsPage, 'https://kickass.to/usearch/.*field=seeders&sorder=desc': TorrentsPage,
'https://kickass.to/.*.html': TorrentPage, 'https://kickass.to/.*.html': TorrentPage,

View file

@ -20,7 +20,7 @@
import re import re
from weboob.tools.browser import BaseBrowser from weboob.tools.browser import Browser
from .pages import MainPage, ListingAutoPage, AnnoncePage from .pages import MainPage, ListingAutoPage, AnnoncePage
@ -29,7 +29,7 @@ __all__ = ['LaCentraleBrowser']
# I manage urls and page location, then trasnfert to page # I manage urls and page location, then trasnfert to page
class LaCentraleBrowser(BaseBrowser): class LaCentraleBrowser(Browser):
PROTOCOL = 'http' PROTOCOL = 'http'
DOMAIN = 'www.lacentrale.fr' DOMAIN = 'www.lacentrale.fr'
ENCODING = 'windows-1252' ENCODING = 'windows-1252'

View file

@ -21,7 +21,7 @@
from urlparse import urlsplit, parse_qsl from urlparse import urlsplit, parse_qsl
from mechanize import Cookie from mechanize import Cookie
from weboob.tools.browser import BaseBrowser, BrowserIncorrectPassword from weboob.tools.browser import Browser, BrowserIncorrectPassword
from .pages import SkipPage, LoginPage, AccountsPage, AccountHistoryPage, \ from .pages import SkipPage, LoginPage, AccountsPage, AccountHistoryPage, \
CBListPage, CBHistoryPage, ContractsPage CBListPage, CBHistoryPage, ContractsPage
@ -31,12 +31,12 @@ __all__ = ['LCLBrowser','LCLProBrowser']
# Browser # Browser
class LCLBrowser(BaseBrowser): class LCLBrowser(Browser):
PROTOCOL = 'https' PROTOCOL = 'https'
DOMAIN = 'particuliers.secure.lcl.fr' DOMAIN = 'particuliers.secure.lcl.fr'
CERTHASH = ['825a1cda9f3c7176af327013a20145ad587d1f7e2a7e226a1cb5c522e6e00b84'] CERTHASH = ['825a1cda9f3c7176af327013a20145ad587d1f7e2a7e226a1cb5c522e6e00b84']
ENCODING = 'utf-8' ENCODING = 'utf-8'
USER_AGENT = BaseBrowser.USER_AGENTS['wget'] USER_AGENT = Browser.USER_AGENTS['wget']
PAGES = { PAGES = {
'https://particuliers.secure.lcl.fr/outil/UAUT/Authentication/authenticate': LoginPage, 'https://particuliers.secure.lcl.fr/outil/UAUT/Authentication/authenticate': LoginPage,
'https://particuliers.secure.lcl.fr/outil/UAUT\?from=.*': LoginPage, 'https://particuliers.secure.lcl.fr/outil/UAUT\?from=.*': LoginPage,
@ -127,7 +127,7 @@ class LCLProBrowser(LCLBrowser):
DOMAIN = 'professionnels.secure.lcl.fr' DOMAIN = 'professionnels.secure.lcl.fr'
CERTHASH = ['6ae7053ef30f7c7810673115b021a42713f518f3a87b2e73ef565c16ead79f81'] CERTHASH = ['6ae7053ef30f7c7810673115b021a42713f518f3a87b2e73ef565c16ead79f81']
ENCODING = 'utf-8' ENCODING = 'utf-8'
USER_AGENT = BaseBrowser.USER_AGENTS['wget'] USER_AGENT = Browser.USER_AGENTS['wget']
PAGES = { PAGES = {
'https://professionnels.secure.lcl.fr/outil/UAUT?from=/outil/UWHO/Accueil/': LoginPage, 'https://professionnels.secure.lcl.fr/outil/UAUT?from=/outil/UWHO/Accueil/': LoginPage,
'https://professionnels.secure.lcl.fr/outil/UAUT\?from=.*': LoginPage, 'https://professionnels.secure.lcl.fr/outil/UAUT\?from=.*': LoginPage,
@ -163,6 +163,6 @@ class LCLProBrowser(LCLBrowser):
cookiejar.set_cookie(c) cookiejar.set_cookie(c)
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
BaseBrowser.__init__(self, *args, **kwargs) Browser.__init__(self, *args, **kwargs)
self.add_cookie("lclgen","professionnels") self.add_cookie("lclgen","professionnels")

View file

@ -19,7 +19,7 @@
from urllib import urlencode from urllib import urlencode
from weboob.tools.browser import BaseBrowser, BrowserIncorrectPassword from weboob.tools.browser import Browser, BrowserIncorrectPassword
from .pages import HomePage, MessagesPage, LogoutPage, LogoutOkPage, \ from .pages import HomePage, MessagesPage, LogoutPage, LogoutOkPage, \
AlreadyConnectedPage, ExpiredPage, MovementsPage, RootPage AlreadyConnectedPage, ExpiredPage, MovementsPage, RootPage
@ -28,14 +28,14 @@ from .pages import HomePage, MessagesPage, LogoutPage, LogoutOkPage, \
__all__ = ['LCLEnterpriseBrowser'] __all__ = ['LCLEnterpriseBrowser']
class LCLEnterpriseBrowser(BaseBrowser): class LCLEnterpriseBrowser(Browser):
BASEURL = 'https://entreprises.secure.lcl.fr' BASEURL = 'https://entreprises.secure.lcl.fr'
CERTHASH = ['04e3509c20ac8bdbdb3d0ed37bc34db2dde5ed4bc4c30a3605f63403413099a9', CERTHASH = ['04e3509c20ac8bdbdb3d0ed37bc34db2dde5ed4bc4c30a3605f63403413099a9',
'5fcf4a9ceeec25e406a04dffe0c6eacbdf72d11d394cd049701bfbaba3d853d9', '5fcf4a9ceeec25e406a04dffe0c6eacbdf72d11d394cd049701bfbaba3d853d9',
'774ac6f1c419083541a27d95672a87a5edf5c82d948368008eab2764e65866f9', '774ac6f1c419083541a27d95672a87a5edf5c82d948368008eab2764e65866f9',
'3db256edfeb7ba255625724b7e62d4dab229557226336ba87b9753006721f16f'] '3db256edfeb7ba255625724b7e62d4dab229557226336ba87b9753006721f16f']
ENCODING = 'utf-8' ENCODING = 'utf-8'
USER_AGENT = BaseBrowser.USER_AGENTS['wget'] USER_AGENT = Browser.USER_AGENTS['wget']
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
BASEURL = self.BASEURL.rstrip('/') BASEURL = self.BASEURL.rstrip('/')
@ -60,7 +60,7 @@ class LCLEnterpriseBrowser(BaseBrowser):
BASEURL + '/outil/IQEN/Authentication/sessionExpiree': ExpiredPage, BASEURL + '/outil/IQEN/Authentication/sessionExpiree': ExpiredPage,
} }
BaseBrowser.__init__(self, *args, **kwargs) Browser.__init__(self, *args, **kwargs)
self._logged = False self._logged = False
def deinit(self): def deinit(self):

View file

@ -20,7 +20,7 @@
import time import time
import StringIO import StringIO
from weboob.tools.browser import BaseBrowser, BrowserIncorrectPassword from weboob.tools.browser import Browser, BrowserIncorrectPassword
from .pages import HomePage, LoginPage, HistoryPage, PdfPage from .pages import HomePage, LoginPage, HistoryPage, PdfPage
from weboob.capabilities.bill import Detail from weboob.capabilities.bill import Detail
from weboob.capabilities.base import NotAvailable from weboob.capabilities.base import NotAvailable
@ -29,7 +29,7 @@ from weboob.capabilities.base import NotAvailable
__all__ = ['Leclercmobile'] __all__ = ['Leclercmobile']
class Leclercmobile(BaseBrowser): class Leclercmobile(Browser):
DOMAIN = 'www.securelmobile.fr' DOMAIN = 'www.securelmobile.fr'
PROTOCOL = 'https' PROTOCOL = 'https'
ENCODING = 'utf-8' ENCODING = 'utf-8'
@ -44,7 +44,7 @@ class Leclercmobile(BaseBrowser):
bills = '/EspaceClient/pgeWERL015_RecupReleveConso.aspx?m=-' bills = '/EspaceClient/pgeWERL015_RecupReleveConso.aspx?m=-'
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
BaseBrowser.__init__(self, *args, **kwargs) Browser.__init__(self, *args, **kwargs)
def home(self): def home(self):
self.location(self.accueil) self.location(self.accueil)

View file

@ -20,14 +20,14 @@
from .pages.article import ArticlePage, ActuPage from .pages.article import ArticlePage, ActuPage
from .pages.flashactu import FlashActuPage from .pages.flashactu import FlashActuPage
from weboob.tools.browser import BaseBrowser, Page from weboob.tools.browser import Browser, Page
class IndexPage(Page): class IndexPage(Page):
pass pass
class NewspaperFigaroBrowser(BaseBrowser): class NewspaperFigaroBrowser(Browser):
"NewspaperFigaroBrowser class" "NewspaperFigaroBrowser class"
ENCODING = "UTF-8" ENCODING = "UTF-8"
PAGES = {"http://\w+.lefigaro.fr/flash-.*/(\d{4})/(\d{2})/(\d{2})/(.*$)": FlashActuPage, PAGES = {"http://\w+.lefigaro.fr/flash-.*/(\d{4})/(\d{2})/(\d{2})/(.*$)": FlashActuPage,

View file

@ -18,10 +18,10 @@
# along with weboob. If not, see <http://www.gnu.org/licenses/>. # along with weboob. If not, see <http://www.gnu.org/licenses/>.
from .pages.article import ArticlePage from .pages.article import ArticlePage
from weboob.tools.browser import BaseBrowser from weboob.tools.browser import Browser
class NewspaperLibeBrowser(BaseBrowser): class NewspaperLibeBrowser(Browser):
"NewspaperLibeBrowser class" "NewspaperLibeBrowser class"
PAGES = {"http://.*liberation.fr/.*": ArticlePage} PAGES = {"http://.*liberation.fr/.*": ArticlePage}

View file

@ -18,7 +18,7 @@
# along with weboob. If not, see <http://www.gnu.org/licenses/>. # along with weboob. If not, see <http://www.gnu.org/licenses/>.
from weboob.tools.browser.decorators import id2url from weboob.tools.browser.decorators import id2url
from weboob.tools.browser import BaseBrowser from weboob.tools.browser import Browser
from .job import LolixJobAdvert from .job import LolixJobAdvert
from .pages import SearchPage, AdvertPage from .pages import SearchPage, AdvertPage
import urllib import urllib
@ -26,7 +26,7 @@ import urllib
__all__ = ['LolixBrowser'] __all__ = ['LolixBrowser']
class LolixBrowser(BaseBrowser): class LolixBrowser(Browser):
PROTOCOL = 'http' PROTOCOL = 'http'
DOMAIN = 'fr.lolix.org/search/offre' DOMAIN = 'fr.lolix.org/search/offre'
ENCODING = 'iso-8859-1' ENCODING = 'iso-8859-1'

View file

@ -18,7 +18,7 @@
# along with weboob. If not, see <http://www.gnu.org/licenses/>. # along with weboob. If not, see <http://www.gnu.org/licenses/>.
from weboob.tools.browser import BaseBrowser from weboob.tools.browser import Browser
from StringIO import StringIO from StringIO import StringIO
import re import re
@ -28,11 +28,11 @@ from .pages import PageAll
__all__ = ['LutimBrowser'] __all__ = ['LutimBrowser']
class LutimBrowser(BaseBrowser): class LutimBrowser(Browser):
ENCODING = 'utf-8' ENCODING = 'utf-8'
def __init__(self, base_url, *args, **kw): def __init__(self, base_url, *args, **kw):
BaseBrowser.__init__(self, *args, **kw) Browser.__init__(self, *args, **kw)
self.base_url = base_url self.base_url = base_url
self.PAGES = {re.escape(self.base_url): PageAll} self.PAGES = {re.escape(self.base_url): PageAll}

View file

@ -18,7 +18,7 @@
# along with weboob. If not, see <http://www.gnu.org/licenses/>. # along with weboob. If not, see <http://www.gnu.org/licenses/>.
from weboob.tools.browser import BaseBrowser, BrowserBanned from weboob.tools.browser import Browser, BrowserBanned
from weboob.tools.date import datetime from weboob.tools.date import datetime
from weboob.tools.parsers.jsonparser import json from weboob.tools.parsers.jsonparser import json
import lxml.html import lxml.html
@ -28,14 +28,14 @@ import time
__all__ = ['MailinatorBrowser'] __all__ = ['MailinatorBrowser']
class MailinatorBrowser(BaseBrowser): class MailinatorBrowser(Browser):
PROTOCOL = 'http' PROTOCOL = 'http'
DOMAIN = 'mailinator.com' DOMAIN = 'mailinator.com'
ENCODING = 'utf-8' ENCODING = 'utf-8'
def __init__(self, *args, **kw): def __init__(self, *args, **kw):
kw['parser'] = 'raw' kw['parser'] = 'raw'
BaseBrowser.__init__(self, *args, **kw) Browser.__init__(self, *args, **kw)
def _get_unicode(self, url): def _get_unicode(self, url):
return self.get_document(self.openurl(url)).decode(self.ENCODING, 'replace') return self.get_document(self.openurl(url)).decode(self.ENCODING, 'replace')

View file

@ -18,7 +18,7 @@
# along with weboob. If not, see <http://www.gnu.org/licenses/>. # along with weboob. If not, see <http://www.gnu.org/licenses/>.
from weboob.tools.browser import BaseBrowser, BrowserHTTPNotFound from weboob.tools.browser import Browser, BrowserHTTPNotFound
from .pages import RecipePage, ResultsPage from .pages import RecipePage, ResultsPage
@ -26,11 +26,11 @@ from .pages import RecipePage, ResultsPage
__all__ = ['MarmitonBrowser'] __all__ = ['MarmitonBrowser']
class MarmitonBrowser(BaseBrowser): class MarmitonBrowser(Browser):
DOMAIN = 'www.marmiton.org' DOMAIN = 'www.marmiton.org'
PROTOCOL = 'http' PROTOCOL = 'http'
ENCODING = 'utf-8' ENCODING = 'utf-8'
USER_AGENT = BaseBrowser.USER_AGENTS['wget'] USER_AGENT = Browser.USER_AGENTS['wget']
PAGES = { PAGES = {
'http://www.marmiton.org/recettes/recherche.aspx.*': ResultsPage, 'http://www.marmiton.org/recettes/recherche.aspx.*': ResultsPage,
'http://www.marmiton.org/recettes/recette_.*': RecipePage, 'http://www.marmiton.org/recettes/recette_.*': RecipePage,

View file

@ -22,7 +22,7 @@ import urllib
import datetime import datetime
import re import re
from weboob.tools.browser import BaseBrowser, BrowserIncorrectPassword from weboob.tools.browser import Browser, BrowserIncorrectPassword
from weboob.tools.json import json as simplejson from weboob.tools.json import json as simplejson
from weboob.capabilities.content import Revision from weboob.capabilities.content import Revision
@ -34,7 +34,7 @@ class APIError(Exception):
# Browser # Browser
class MediawikiBrowser(BaseBrowser): class MediawikiBrowser(Browser):
ENCODING = 'utf-8' ENCODING = 'utf-8'
def __init__(self, url, apiurl, *args, **kwargs): def __init__(self, url, apiurl, *args, **kwargs):
@ -46,7 +46,7 @@ class MediawikiBrowser(BaseBrowser):
self.BASEPATH = self.BASEPATH[:-1] self.BASEPATH = self.BASEPATH[:-1]
self.apiurl = apiurl self.apiurl = apiurl
BaseBrowser.__init__(self, *args, **kwargs) Browser.__init__(self, *args, **kwargs)
def url2page(self, page): def url2page(self, page):
baseurl = self.PROTOCOL + '://' + self.DOMAIN + self.BASEPATH baseurl = self.PROTOCOL + '://' + self.DOMAIN + self.BASEPATH

View file

@ -20,14 +20,14 @@
import urllib import urllib
from weboob.tools.browser import BaseBrowser from weboob.tools.browser import Browser
from .pages.meteo import WeatherPage, SearchCitiesPage from .pages.meteo import WeatherPage, SearchCitiesPage
from weboob.capabilities.weather import CityNotFound from weboob.capabilities.weather import CityNotFound
__all__ = ['MeteofranceBrowser'] __all__ = ['MeteofranceBrowser']
class MeteofranceBrowser(BaseBrowser): class MeteofranceBrowser(Browser):
DOMAIN = 'www.meteofrance.com' DOMAIN = 'www.meteofrance.com'
PROTOCOL = 'http' PROTOCOL = 'http'
ENCODING = 'utf-8' ENCODING = 'utf-8'
@ -39,7 +39,7 @@ class MeteofranceBrowser(BaseBrowser):
} }
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
BaseBrowser.__init__(self, *args, **kwargs) Browser.__init__(self, *args, **kwargs)
def iter_city_search(self, pattern): def iter_city_search(self, pattern):
datas = {'facet': 'previsions', datas = {'facet': 'previsions',

View file

@ -20,11 +20,11 @@
from .pages.article import ArticlePage from .pages.article import ArticlePage
from .pages.simple import SimplePage from .pages.simple import SimplePage
from weboob.tools.browser import BaseBrowser from weboob.tools.browser import Browser
from .tools import id2url from .tools import id2url
class Newspaper20minutesBrowser(BaseBrowser): class Newspaper20minutesBrowser(Browser):
"Newspaper20minutesBrowser class" "Newspaper20minutesBrowser class"
ENCODING = None ENCODING = None
PAGES = { PAGES = {

View file

@ -19,7 +19,7 @@
import urllib import urllib
from weboob.tools.browser.decorators import id2url from weboob.tools.browser.decorators import id2url
from weboob.tools.browser import BaseBrowser from weboob.tools.browser import Browser
from .pages import SearchPage, AdvertPage from .pages import SearchPage, AdvertPage
from .job import MonsterJobAdvert from .job import MonsterJobAdvert
@ -27,7 +27,7 @@ from .job import MonsterJobAdvert
__all__ = ['MonsterBrowser'] __all__ = ['MonsterBrowser']
class MonsterBrowser(BaseBrowser): class MonsterBrowser(Browser):
PROTOCOL = 'http' PROTOCOL = 'http'
DOMAIN = 'offres.monster.fr' DOMAIN = 'offres.monster.fr'
ENCODING = 'utf-8' ENCODING = 'utf-8'

View file

@ -17,16 +17,16 @@
# You should have received a copy of the GNU Affero General Public License # You should have received a copy of the GNU Affero General Public License
# along with weboob. If not, see <http://www.gnu.org/licenses/>. # along with weboob. If not, see <http://www.gnu.org/licenses/>.
from weboob.tools.browser import BaseBrowser from weboob.tools.browser import Browser
from .pages import LivePage, StreamsPage from .pages import LivePage, StreamsPage
__all__ = ['NectarineBrowser'] __all__ = ['NectarineBrowser']
class NectarineBrowser(BaseBrowser): class NectarineBrowser(Browser):
DOMAIN = 'www.scenemusic.net' DOMAIN = 'www.scenemusic.net'
PROTOCOL = 'https' PROTOCOL = 'https'
ENCODING = 'utf-8' ENCODING = 'utf-8'
USER_AGENT = BaseBrowser.USER_AGENTS['desktop_firefox'] USER_AGENT = Browser.USER_AGENTS['desktop_firefox']
PAGES = { PAGES = {
'https://www\.scenemusic\.net/demovibes/xml/streams/': StreamsPage, 'https://www\.scenemusic\.net/demovibes/xml/streams/': StreamsPage,
'https://www\.scenemusic\.net/demovibes/xml/queue/': LivePage 'https://www\.scenemusic\.net/demovibes/xml/queue/': LivePage

View file

@ -18,13 +18,13 @@
# along with weboob. If not, see <http://www.gnu.org/licenses/>. # along with weboob. If not, see <http://www.gnu.org/licenses/>.
from weboob.tools.browser import BaseBrowser, BrowserIncorrectPassword from weboob.tools.browser import Browser, BrowserIncorrectPassword
from .pages import HomePage, LoginPage, HistoryPage, DetailsPage, BillsPage from .pages import HomePage, LoginPage, HistoryPage, DetailsPage, BillsPage
__all__ = ['Nettokom'] __all__ = ['Nettokom']
class Nettokom(BaseBrowser): class Nettokom(Browser):
DOMAIN = 'konto.nettokom.de' DOMAIN = 'konto.nettokom.de'
PROTOCOL = 'https' PROTOCOL = 'https'
ENCODING = None # refer to the HTML encoding ENCODING = None # refer to the HTML encoding
@ -36,7 +36,7 @@ class Nettokom(BaseBrowser):
} }
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
BaseBrowser.__init__(self, *args, **kwargs) Browser.__init__(self, *args, **kwargs)
def home(self): def home(self):
self.location('/start.html') self.location('/start.html')

View file

@ -17,16 +17,16 @@
# You should have received a copy of the GNU Affero General Public License # You should have received a copy of the GNU Affero General Public License
# along with weboob. If not, see <http://www.gnu.org/licenses/>. # along with weboob. If not, see <http://www.gnu.org/licenses/>.
from weboob.tools.browser import BaseBrowser from weboob.tools.browser import Browser
from .pages import LivePage, ProgramPage from .pages import LivePage, ProgramPage
__all__ = ['NihonNoOtoBrowser'] __all__ = ['NihonNoOtoBrowser']
class NihonNoOtoBrowser(BaseBrowser): class NihonNoOtoBrowser(Browser):
DOMAIN = 'www.nihon-no-oto.com' DOMAIN = 'www.nihon-no-oto.com'
PROTOCOL = 'http' PROTOCOL = 'http'
ENCODING = 'utf-8' ENCODING = 'utf-8'
USER_AGENT = BaseBrowser.USER_AGENTS['desktop_firefox'] USER_AGENT = Browser.USER_AGENTS['desktop_firefox']
PAGES = { PAGES = {
'http://www\.nihon-no-oto\.com/': LivePage, 'http://www\.nihon-no-oto\.com/': LivePage,
'http://www\.nihon-no-oto\.com/app/playlist.php': ProgramPage, 'http://www\.nihon-no-oto\.com/app/playlist.php': ProgramPage,

View file

@ -18,7 +18,7 @@
# along with weboob. If not, see <http://www.gnu.org/licenses/>. # along with weboob. If not, see <http://www.gnu.org/licenses/>.
from weboob.tools.browser import BaseBrowser, BrowserIncorrectPassword from weboob.tools.browser import Browser, BrowserIncorrectPassword
import urllib import urllib
@ -28,8 +28,8 @@ from .pages import VideoPage, VideoListPage, FamilyPage, AboPage, LoginPage, Hom
__all__ = ['NolifeTVBrowser'] __all__ = ['NolifeTVBrowser']
class NolifeTVBrowser(BaseBrowser): class NolifeTVBrowser(Browser):
USER_AGENT = BaseBrowser.USER_AGENTS['desktop_firefox'] USER_AGENT = Browser.USER_AGENTS['desktop_firefox']
DOMAIN = 'mobile.nolife-tv.com' DOMAIN = 'mobile.nolife-tv.com'
PROTOCOL = 'http' PROTOCOL = 'http'
PAGES = { r'http://mobile.nolife-tv.com/online/familles-\w+/': FamilyPage, PAGES = { r'http://mobile.nolife-tv.com/online/familles-\w+/': FamilyPage,

View file

@ -19,7 +19,7 @@
import urllib import urllib
from weboob.tools.browser import BaseBrowser, Page from weboob.tools.browser import Browser, Page
from weboob.tools.ordereddict import OrderedDict from weboob.tools.ordereddict import OrderedDict
from .pages import LoginPage, ThreadPage, MessagesPage, PostMessagePage, ProfilePage, PhotosPage, VisitsPage, QuickMatchPage, SentPage from .pages import LoginPage, ThreadPage, MessagesPage, PostMessagePage, ProfilePage, PhotosPage, VisitsPage, QuickMatchPage, SentPage
@ -39,7 +39,7 @@ def check_login(func):
return inner return inner
class OkCBrowser(BaseBrowser): class OkCBrowser(Browser):
DOMAIN = 'm.okcupid.com' DOMAIN = 'm.okcupid.com'
PROTOCOL = 'https' PROTOCOL = 'https'
ENCODING = 'UTF-8' ENCODING = 'UTF-8'

View file

@ -18,7 +18,7 @@
# along with weboob. If not, see <http://www.gnu.org/licenses/>. # along with weboob. If not, see <http://www.gnu.org/licenses/>.
from weboob.tools.browser import BaseBrowser, BrowserIncorrectPassword from weboob.tools.browser import Browser, BrowserIncorrectPassword
from .pages import LoginPage, HomePage, RentedPage, HistoryPage, BookedPage from .pages import LoginPage, HomePage, RentedPage, HistoryPage, BookedPage
@ -27,10 +27,10 @@ __all__ = ['AloesBrowser']
# Browser # Browser
class AloesBrowser(BaseBrowser): class AloesBrowser(Browser):
PROTOCOL = 'http' PROTOCOL = 'http'
ENCODING = 'utf-8' ENCODING = 'utf-8'
USER_AGENT = BaseBrowser.USER_AGENTS['desktop_firefox'] USER_AGENT = Browser.USER_AGENTS['desktop_firefox']
#DEBUG_HTTP = True #DEBUG_HTTP = True
DEBUG_HTTP = False DEBUG_HTTP = False
PAGES = { PAGES = {
@ -43,7 +43,7 @@ class AloesBrowser(BaseBrowser):
def __init__(self, baseurl, *args, **kwargs): def __init__(self, baseurl, *args, **kwargs):
self.BASEURL = baseurl self.BASEURL = baseurl
BaseBrowser.__init__(self, *args, **kwargs) Browser.__init__(self, *args, **kwargs)
def is_logged(self): def is_logged(self):

View file

@ -18,7 +18,7 @@
# along with weboob. If not, see <http://www.gnu.org/licenses/>. # along with weboob. If not, see <http://www.gnu.org/licenses/>.
from weboob.tools.browser import BaseBrowser, BrowserHTTPNotFound from weboob.tools.browser import Browser, BrowserHTTPNotFound
from weboob.applications.suboob.suboob import LANGUAGE_CONV from weboob.applications.suboob.suboob import LANGUAGE_CONV
from .pages import SubtitlesPage, SearchPage, SubtitlePage from .pages import SubtitlesPage, SearchPage, SubtitlePage
@ -27,11 +27,11 @@ from .pages import SubtitlesPage, SearchPage, SubtitlePage
__all__ = ['OpensubtitlesBrowser'] __all__ = ['OpensubtitlesBrowser']
class OpensubtitlesBrowser(BaseBrowser): class OpensubtitlesBrowser(Browser):
DOMAIN = 'www.opensubtitles.org' DOMAIN = 'www.opensubtitles.org'
PROTOCOL = 'http' PROTOCOL = 'http'
ENCODING = 'utf-8' ENCODING = 'utf-8'
USER_AGENT = BaseBrowser.USER_AGENTS['wget'] USER_AGENT = Browser.USER_AGENTS['wget']
PAGES = { PAGES = {
'http://www.opensubtitles.org.*search2/sublanguageid.*moviename.*': SearchPage, 'http://www.opensubtitles.org.*search2/sublanguageid.*moviename.*': SearchPage,
'http://www.opensubtitles.org.*search/sublanguageid.*idmovie.*': SubtitlesPage, 'http://www.opensubtitles.org.*search/sublanguageid.*idmovie.*': SubtitlesPage,

View file

@ -23,13 +23,13 @@
from .pages import LoginPage, ComposePage, ConfirmPage from .pages import LoginPage, ComposePage, ConfirmPage
from weboob.tools.browser import BaseBrowser, BrowserIncorrectPassword from weboob.tools.browser import Browser, BrowserIncorrectPassword
__all__ = ['OrangeBrowser'] __all__ = ['OrangeBrowser']
class OrangeBrowser(BaseBrowser): class OrangeBrowser(Browser):
DOMAIN = 'orange.fr' DOMAIN = 'orange.fr'
PAGES = { PAGES = {
'http://id.orange.fr/auth_user/bin/auth_user.cgi.*': LoginPage, 'http://id.orange.fr/auth_user/bin/auth_user.cgi.*': LoginPage,

View file

@ -18,7 +18,7 @@
# along with weboob. If not, see <http://www.gnu.org/licenses/>. # along with weboob. If not, see <http://www.gnu.org/licenses/>.
from weboob.tools.browser import BaseBrowser, BrowserIncorrectPassword from weboob.tools.browser import Browser, BrowserIncorrectPassword
from weboob.tools.parsers.iparser import IParser from weboob.tools.parsers.iparser import IParser
import BeautifulSoup import BeautifulSoup
@ -33,7 +33,7 @@ class SoupParser(IParser):
return BeautifulSoup.BeautifulSoup(data.read().decode(encoding or 'utf-8'), convertEntities=BeautifulSoup.BeautifulStoneSoup.ALL_ENTITIES) return BeautifulSoup.BeautifulSoup(data.read().decode(encoding or 'utf-8'), convertEntities=BeautifulSoup.BeautifulStoneSoup.ALL_ENTITIES)
class OvsBrowser(BaseBrowser): class OvsBrowser(Browser):
PROTOCOL = 'http' PROTOCOL = 'http'
DOMAIN = 'paris.onvasortir.com' DOMAIN = 'paris.onvasortir.com'
ENCODING = 'cp1252' ENCODING = 'cp1252'
@ -62,7 +62,7 @@ class OvsBrowser(BaseBrowser):
} }
kw['parser'] = SoupParser() kw['parser'] = SoupParser()
BaseBrowser.__init__(self, username, password, *a, **kw) Browser.__init__(self, username, password, *a, **kw)
self.city = city self.city = city
def iter_threads_list(self): def iter_threads_list(self):

View file

@ -22,7 +22,7 @@ import urllib
from weboob.tools.json import json from weboob.tools.json import json
from weboob.tools.browser import BaseBrowser from weboob.tools.browser import Browser
from weboob.capabilities.housing import Query from weboob.capabilities.housing import Query
from .pages import SearchResultsPage, HousingPage from .pages import SearchResultsPage, HousingPage
@ -31,7 +31,7 @@ from .pages import SearchResultsPage, HousingPage
__all__ = ['PapBrowser'] __all__ = ['PapBrowser']
class PapBrowser(BaseBrowser): class PapBrowser(Browser):
PROTOCOL = 'http' PROTOCOL = 'http'
DOMAIN = 'www.pap.fr' DOMAIN = 'www.pap.fr'
ENCODING = 'utf-8' ENCODING = 'utf-8'

View file

@ -18,7 +18,7 @@
# along with weboob. If not, see <http://www.gnu.org/licenses/>. # along with weboob. If not, see <http://www.gnu.org/licenses/>.
from weboob.tools.browser import BaseBrowser from weboob.tools.browser import Browser
from .pages import PageList, PageList2, PageEvent from .pages import PageList, PageList2, PageEvent
@ -26,7 +26,7 @@ from .pages import PageList, PageList2, PageEvent
__all__ = ['ParisKiwiBrowser'] __all__ = ['ParisKiwiBrowser']
class ParisKiwiBrowser(BaseBrowser): class ParisKiwiBrowser(Browser):
PROTOCOL = 'http' PROTOCOL = 'http'
DOMAIN = 'pariskiwi.org' DOMAIN = 'pariskiwi.org'
ENCODING = 'utf-8' ENCODING = 'utf-8'
@ -39,7 +39,7 @@ class ParisKiwiBrowser(BaseBrowser):
def __init__(self, *a, **kw): def __init__(self, *a, **kw):
kw['parser'] = 'raw' kw['parser'] = 'raw'
BaseBrowser.__init__(self, *a, **kw) Browser.__init__(self, *a, **kw)
def list_events_all(self): def list_events_all(self):
self.location('http://pariskiwi.org/~parislagrise/mediawiki/api.php?action=query&list=allpages&apprefix=Agenda%2FDetruire_Ennui_Paris&aplimit=500&format=json') self.location('http://pariskiwi.org/~parislagrise/mediawiki/api.php?action=query&list=allpages&apprefix=Agenda%2FDetruire_Ennui_Paris&aplimit=500&format=json')

View file

@ -18,7 +18,7 @@
# along with weboob. If not, see <http://www.gnu.org/licenses/>. # along with weboob. If not, see <http://www.gnu.org/licenses/>.
from weboob.tools.browser import BaseBrowser, BrowserHTTPNotFound from weboob.tools.browser import Browser, BrowserHTTPNotFound
from .pages import SongResultsPage, SonglyricsPage, ArtistResultsPage, ArtistSongsPage from .pages import SongResultsPage, SonglyricsPage, ArtistResultsPage, ArtistSongsPage
@ -26,11 +26,11 @@ from .pages import SongResultsPage, SonglyricsPage, ArtistResultsPage, ArtistSon
__all__ = ['ParolesmaniaBrowser'] __all__ = ['ParolesmaniaBrowser']
class ParolesmaniaBrowser(BaseBrowser): class ParolesmaniaBrowser(Browser):
DOMAIN = 'www.parolesmania.com' DOMAIN = 'www.parolesmania.com'
PROTOCOL = 'http' PROTOCOL = 'http'
ENCODING = 'utf-8' ENCODING = 'utf-8'
USER_AGENT = BaseBrowser.USER_AGENTS['wget'] USER_AGENT = Browser.USER_AGENTS['wget']
PAGES = { PAGES = {
'http://www.parolesmania.com/recherche.php\?c=title.*': SongResultsPage, 'http://www.parolesmania.com/recherche.php\?c=title.*': SongResultsPage,
'http://www.parolesmania.com/recherche.php\?c=artist.*': ArtistResultsPage, 'http://www.parolesmania.com/recherche.php\?c=artist.*': ArtistResultsPage,

View file

@ -18,7 +18,7 @@
# along with weboob. If not, see <http://www.gnu.org/licenses/>. # along with weboob. If not, see <http://www.gnu.org/licenses/>.
from weboob.tools.browser import BaseBrowser, BrowserHTTPNotFound from weboob.tools.browser import Browser, BrowserHTTPNotFound
from .pages import SongResultsPage, SonglyricsPage, ArtistResultsPage, ArtistSongsPage, HomePage from .pages import SongResultsPage, SonglyricsPage, ArtistResultsPage, ArtistSongsPage, HomePage
@ -26,11 +26,11 @@ from .pages import SongResultsPage, SonglyricsPage, ArtistResultsPage, ArtistSon
__all__ = ['ParolesmusiqueBrowser'] __all__ = ['ParolesmusiqueBrowser']
class ParolesmusiqueBrowser(BaseBrowser): class ParolesmusiqueBrowser(Browser):
DOMAIN = 'www.paroles-musique.com' DOMAIN = 'www.paroles-musique.com'
PROTOCOL = 'http' PROTOCOL = 'http'
ENCODING = 'utf-8' ENCODING = 'utf-8'
USER_AGENT = BaseBrowser.USER_AGENTS['wget'] USER_AGENT = Browser.USER_AGENTS['wget']
PAGES = { PAGES = {
'http://www.paroles-musique.com': HomePage, 'http://www.paroles-musique.com': HomePage,
'http://www.paroles-musique.com/lyrics-paroles-0-.*,0.php': SongResultsPage, 'http://www.paroles-musique.com/lyrics-paroles-0-.*,0.php': SongResultsPage,

View file

@ -18,7 +18,7 @@
# along with weboob. If not, see <http://www.gnu.org/licenses/>. # along with weboob. If not, see <http://www.gnu.org/licenses/>.
from weboob.tools.browser import BaseBrowser, BrowserHTTPNotFound from weboob.tools.browser import Browser, BrowserHTTPNotFound
from .pages import ResultsPage, SonglyricsPage, ArtistSongsPage, HomePage from .pages import ResultsPage, SonglyricsPage, ArtistSongsPage, HomePage
@ -26,11 +26,11 @@ from .pages import ResultsPage, SonglyricsPage, ArtistSongsPage, HomePage
__all__ = ['ParolesnetBrowser'] __all__ = ['ParolesnetBrowser']
class ParolesnetBrowser(BaseBrowser): class ParolesnetBrowser(Browser):
DOMAIN = 'www.paroles.net' DOMAIN = 'www.paroles.net'
PROTOCOL = 'http' PROTOCOL = 'http'
ENCODING = 'utf-8' ENCODING = 'utf-8'
USER_AGENT = BaseBrowser.USER_AGENTS['wget'] USER_AGENT = Browser.USER_AGENTS['wget']
PAGES = { PAGES = {
'http://www.paroles.net': HomePage, 'http://www.paroles.net': HomePage,
'http://www.paroles.net/search': ResultsPage, 'http://www.paroles.net/search': ResultsPage,

View file

@ -18,7 +18,7 @@
# along with weboob. If not, see <http://www.gnu.org/licenses/>. # along with weboob. If not, see <http://www.gnu.org/licenses/>.
from weboob.tools.browser import BaseBrowser, BrowserIncorrectPassword from weboob.tools.browser import Browser, BrowserIncorrectPassword
from .pages import LoginPage, AccountPage, DownloadHistoryPage, LastDownloadHistoryPage, SubmitPage, HistoryParser, UselessPage, HistoryPage, CSVAlreadyAsked from .pages import LoginPage, AccountPage, DownloadHistoryPage, LastDownloadHistoryPage, SubmitPage, HistoryParser, UselessPage, HistoryPage, CSVAlreadyAsked
import datetime import datetime
@ -26,7 +26,7 @@ import datetime
__all__ = ['Paypal'] __all__ = ['Paypal']
class Paypal(BaseBrowser): class Paypal(Browser):
DOMAIN = 'www.paypal.com' DOMAIN = 'www.paypal.com'
PROTOCOL = 'https' PROTOCOL = 'https'
CERTHASH = ['b8f6c76050ed3035aab08474b1da0ff783f20d114b1740e8db275fe433ff69af', '96753399cf183334cef00a72719ea8e13cfe68d1e953006348f41f884180de15'] CERTHASH = ['b8f6c76050ed3035aab08474b1da0ff783f20d114b1740e8db275fe433ff69af', '96753399cf183334cef00a72719ea8e13cfe68d1e953006348f41f884180de15']

View file

@ -22,7 +22,7 @@ import re
import urllib import urllib
from urlparse import urlsplit from urlparse import urlsplit
from weboob.tools.browser import BaseBrowser, BrowserIncorrectPassword from weboob.tools.browser import Browser, BrowserIncorrectPassword
from weboob.capabilities.messages import CantSendMessage from weboob.capabilities.messages import CantSendMessage
from .pages.index import LoginPage from .pages.index import LoginPage
@ -34,7 +34,7 @@ __all__ = ['PhpBB']
# Browser # Browser
class PhpBB(BaseBrowser): class PhpBB(Browser):
PAGES = {'https?://.*/index.php': ForumPage, PAGES = {'https?://.*/index.php': ForumPage,
'https?://.*/': ForumPage, 'https?://.*/': ForumPage,
'https?://.*/viewforum.php\?f=(\d+)': ForumPage, 'https?://.*/viewforum.php\?f=(\d+)': ForumPage,
@ -52,10 +52,10 @@ class PhpBB(BaseBrowser):
self.PROTOCOL = v.scheme self.PROTOCOL = v.scheme
self.DOMAIN = v.netloc self.DOMAIN = v.netloc
self.BASEPATH = v.path[:v.path.rfind('/')] self.BASEPATH = v.path[:v.path.rfind('/')]
BaseBrowser.__init__(self, *args, **kwargs) Browser.__init__(self, *args, **kwargs)
def absurl(self, rel): def absurl(self, rel):
return BaseBrowser.absurl(self, '%s/%s' % (self.BASEPATH, rel)) return Browser.absurl(self, '%s/%s' % (self.BASEPATH, rel))
def home(self): def home(self):
self.location(self.url) self.location(self.url)

Some files were not shown because too many files have changed in this diff Show more