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.
* **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
* **test.py** - functional tests
* **favicon.png** - a 64x64 transparent PNG icon

View file

@ -18,7 +18,7 @@
# 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
@ -26,11 +26,11 @@ from .pages import RecipePage, ResultsPage
__all__ = ['SevenFiftyGramsBrowser']
class SevenFiftyGramsBrowser(BaseBrowser):
class SevenFiftyGramsBrowser(Browser):
DOMAIN = 'www.750g.com'
PROTOCOL = 'http'
ENCODING = 'windows-1252'
USER_AGENT = BaseBrowser.USER_AGENTS['wget']
USER_AGENT = Browser.USER_AGENTS['wget']
PAGES = {
'http://www.750g.com/recettes_.*.htm': ResultsPage,
'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/>.
from weboob.tools.browser.decorators import id2url
from weboob.tools.browser import BaseBrowser
from weboob.tools.browser import Browser
from .job import AdeccoJobAdvert
from .pages import SearchPage, AdvertPage
import urllib
@ -26,7 +26,7 @@ import urllib
__all__ = ['AdeccoBrowser']
class AdeccoBrowser(BaseBrowser):
class AdeccoBrowser(Browser):
PROTOCOL = 'http'
DOMAIN = 'www.adecco.fr'
ENCODING = None

View file

@ -20,7 +20,7 @@
from weboob.capabilities.base import NotAvailable, NotLoaded
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
import base64
import hashlib
@ -32,7 +32,7 @@ import urllib
__all__ = ['AllocineBrowser']
class AllocineBrowser(BaseBrowser):
class AllocineBrowser(Browser):
DOMAIN = 'api.allocine.fr'
PROTOCOL = 'http'
ENCODING = 'utf-8'

View file

@ -18,7 +18,7 @@
# 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
@ -26,11 +26,11 @@ from .pages import RecipePage, ResultsPage, FourOFourPage
__all__ = ['AllrecipesBrowser']
class AllrecipesBrowser(BaseBrowser):
class AllrecipesBrowser(Browser):
DOMAIN = 'allrecipes.com'
PROTOCOL = 'http'
ENCODING = 'utf-8'
USER_AGENT = BaseBrowser.USER_AGENTS['wget']
USER_AGENT = Browser.USER_AGENTS['wget']
PAGES = {
'http://allrecipes.com/search/default.aspx\?qt=k&wt=.*&rt=r&origin=.*': ResultsPage,
'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
# 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 decimal import Decimal
from .pages import LoginPage, HomePage, AccountPage, LastPaymentsPage, PaymentDetailsPage, BillsPage
@ -25,7 +25,7 @@ from .pages import LoginPage, HomePage, AccountPage, LastPaymentsPage, PaymentDe
__all__ = ['AmeliBrowser']
class AmeliBrowser(BaseBrowser):
class AmeliBrowser(Browser):
PROTOCOL = 'https'
DOMAIN = 'assure.ameli.fr'
ENCODING = None

View file

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

View file

@ -20,7 +20,7 @@
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
@ -28,7 +28,7 @@ from .pages import LoginPage, AccountsPage, TransactionsPage
__all__ = ['AmericanExpressBrowser']
class AmericanExpressBrowser(BaseBrowser):
class AmericanExpressBrowser(Browser):
DOMAIN = 'global.americanexpress.com'
PROTOCOL = 'https'
ENCODING = 'ISO-8859-1'

View file

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

View file

@ -18,7 +18,7 @@
# 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
@ -26,7 +26,7 @@ from .pages import LoginPage, AccountsPage, OperationsPage
__all__ = ['ApivieBrowser']
class ApivieBrowser(BaseBrowser):
class ApivieBrowser(Browser):
PROTOCOL = 'https'
DOMAIN = 'www.apivie.fr'
ENCODING = None

View file

@ -18,7 +18,7 @@
# 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 .pages import VideoPage, IndexPage, LoginPage, LoginRedirectPage
@ -28,7 +28,7 @@ from .video import ArretSurImagesVideo
__all__ = ['ArretSurImagesBrowser']
class ArretSurImagesBrowser(BaseBrowser):
class ArretSurImagesBrowser(Browser):
PROTOCOL = 'http'
DOMAIN = 'www.arretsurimages.net'
ENCODING = None

View file

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

View file

@ -18,7 +18,7 @@
# 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
@ -26,11 +26,11 @@ from .pages import SubtitlesPage, SearchPage
__all__ = ['AttilasubBrowser']
class AttilasubBrowser(BaseBrowser):
class AttilasubBrowser(Browser):
DOMAIN = 'davidbillemont3.free.fr'
PROTOCOL = 'http'
ENCODING = 'windows-1252'
USER_AGENT = BaseBrowser.USER_AGENTS['wget']
USER_AGENT = Browser.USER_AGENTS['wget']
PAGES = {
'http://search.freefind.com/find.html.*': SearchPage,
'http://davidbillemont3.free.fr/.*.htm': SubtitlesPage,

View file

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

View file

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

View file

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

View file

@ -18,7 +18,7 @@
# 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, \
CardPage, ValuationPage, LoanPage, MarketPage
@ -27,7 +27,7 @@ from .pages import LoginPage, Login2Page, IndexPage, AccountsPage, TransactionsP
__all__ = ['Barclays']
class Barclays(BaseBrowser):
class Barclays(Browser):
PROTOCOL = 'https'
DOMAIN = 'www.barclays.fr'
PAGES = {'https?://.*.barclays.fr/\d-index.html': IndexPage,
@ -44,7 +44,7 @@ class Barclays(BaseBrowser):
def __init__(self, secret, *args, **kwargs):
self.secret = secret
BaseBrowser.__init__(self, *args, **kwargs)
Browser.__init__(self, *args, **kwargs)
def is_logged(self):
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 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 .perso.accounts_list import AccountsList, AccountPrelevement
@ -36,7 +36,7 @@ from .pro import ProAccountsList, ProAccountHistory
__all__ = ['BNPorc']
class BNPorc(BaseBrowser):
class BNPorc(Browser):
DOMAIN = 'www.secure.bnpparibas.net'
PROTOCOL = 'https'
CERTHASH = ['5511f0ff19c982b6351c17b901bfa7419f075edb13f2df41e446248beb7866bb', 'fa8cb72ef2e46054469af916f7ec222b1904901fecde8511a0f769ba0385410d', '86cd4ba8cfbc53937dfc402e8c2d0a2d5ffb630a73bbeafd09c39f8b54a6a6c3']
@ -66,7 +66,7 @@ class BNPorc(BaseBrowser):
def __init__(self, *args, **kwargs):
self.rotating_password = kwargs.pop('rotating_password', None)
self.password_changed_cb = kwargs.pop('password_changed_cb', None)
BaseBrowser.__init__(self, *args, **kwargs)
Browser.__init__(self, *args, **kwargs)
def home(self):
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/>.
from weboob.tools.browser import BaseBrowser, BrowserIncorrectPassword
from weboob.tools.browser import Browser, BrowserIncorrectPassword
from .pages import LoginPage, AccountsPage, HistoryPage, UnknownPage
__all__ = ['BNPEnterprise']
class BNPEnterprise(BaseBrowser):
class BNPEnterprise(Browser):
DOMAIN = 'entreprises.bnpparibas.net'
PROTOCOL = 'https'
CERTHASH = '6789f1e08e18d6578dca88ce2e0354a99dbe7824736c01c9c4fa3b456d03b9e9'

View file

@ -20,7 +20,7 @@
# 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
@ -32,7 +32,7 @@ class BrowserIncorrectAuthenticationCode(BrowserIncorrectPassword):
pass
class Boursorama(BaseBrowser):
class Boursorama(Browser):
DOMAIN = 'www.boursorama.com'
PROTOCOL = 'https'
CERTHASH = ['6bdf8b6dd177bd417ddcb1cfb818ede153288e44115eb269f2ddd458c8461039', 'b290ef629c88f0508e9cc6305421c173bd4291175e3ddedbee05ee666b34c20e']
@ -51,7 +51,7 @@ class Boursorama(BaseBrowser):
*args, **kwargs):
self.device = device
self.enable_twofactors = enable_twofactors
BaseBrowser.__init__(self, *args, **kwargs)
Browser.__init__(self, *args, **kwargs)
def home(self):
if not self.is_logged():

View file

@ -21,13 +21,13 @@
from .pages.compose import ComposeFrame, ComposePage, ConfirmPage, SentPage
from .pages.login import LoginPage, LoginSASPage
from weboob.tools.browser import BaseBrowser, BrowserIncorrectPassword
from weboob.tools.browser import Browser, BrowserIncorrectPassword
__all__ = ['BouyguesBrowser']
class BouyguesBrowser(BaseBrowser):
class BouyguesBrowser(Browser):
DOMAIN = 'www.bouyguestelecom.fr'
PAGES = {
'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 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, \
AccountList, AccountHistory, CardsList, UnavailablePage, \
@ -33,7 +33,7 @@ from weboob.capabilities.bank import Transfer
__all__ = ['BPBrowser']
class BPBrowser(BaseBrowser):
class BPBrowser(Browser):
DOMAIN = 'voscomptesenligne.labanquepostale.fr'
PROTOCOL = 'https'
CERTHASH = ['d10d09246853237892d5fb44685826ea99bfdeaaf29fac6dd236dae8cb103c39', 'ccdf2885f1d6df19e15d098dd52fd486609d891ebd2724970a5cfcb9254b6fa5']
@ -63,7 +63,7 @@ class BPBrowser(BaseBrowser):
def __init__(self, *args, **kwargs):
kwargs['parser'] = ('lxml',)
BaseBrowser.__init__(self, *args, **kwargs)
Browser.__init__(self, *args, **kwargs)
def home(self):
self.location('https://voscomptesenligne.labanquepostale.fr/wsost/OstBrokerWeb/loginform?TAM_OP=login&'

View file

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

View file

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

View file

@ -18,7 +18,7 @@
# 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
@ -26,11 +26,11 @@ from .pages import TorrentsPage, TorrentPage
__all__ = ['BtmonBrowser']
class BtmonBrowser(BaseBrowser):
class BtmonBrowser(Browser):
DOMAIN = 'www.btmon.com'
PROTOCOL = 'http'
ENCODING = 'utf-8'
USER_AGENT = BaseBrowser.USER_AGENTS['wget']
USER_AGENT = Browser.USER_AGENTS['wget']
PAGES = {
'http://www.btmon.com/torrent/\?f=.*': TorrentsPage,
'http://www.btmon.com/.*torrent.html': TorrentPage,

View file

@ -22,7 +22,7 @@ import ssl
import hashlib
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
@ -30,7 +30,7 @@ from .pages import LoginPage, IndexPage, ErrorPage, UnavailablePage
__all__ = ['CaisseEpargne']
class CaisseEpargne(BaseBrowser):
class CaisseEpargne(Browser):
DOMAIN = 'www.caisse-epargne.fr'
PROTOCOL = 'https'
CERTHASH = ['dfff27d6db1fcdf1cea3ab8e3c1ca4f97c971262e95be49f3385b40c97fe640c', '9894ab2088630f341de821a09f1286c525f854f62ac186bd442368b4692c5969']
@ -43,10 +43,10 @@ class CaisseEpargne(BaseBrowser):
def __init__(self, nuser, *args, **kwargs):
self.nuser = nuser
BaseBrowser.__init__(self, *args, **kwargs)
Browser.__init__(self, *args, **kwargs)
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)
return hashlib.sha256(certs).hexdigest()

View file

@ -22,7 +22,7 @@ import urllib
import lxml.etree
from weboob.tools.browser import BaseBrowser
from weboob.tools.browser import Browser
from weboob.tools.browser.decorators import id2url
from .pages import ChannelsPage, VideoPage
@ -42,7 +42,7 @@ class XMLParser(object):
return lxml.etree.XML(data.get_data(), parser)
class CanalplusBrowser(BaseBrowser):
class CanalplusBrowser(Browser):
DOMAIN = u'service.canal-plus.com'
ENCODING = 'utf-8'
PAGES = {
@ -60,7 +60,7 @@ class CanalplusBrowser(BaseBrowser):
}
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'])
def home(self):

View file

@ -20,7 +20,7 @@
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.browser import BrokenPageError
@ -28,11 +28,11 @@ from weboob.tools.browser import BrokenPageError
__all__ = ['CanalTP']
class CanalTP(BaseBrowser):
class CanalTP(Browser):
DOMAIN = 'widget.canaltp.fr'
def __init__(self, **kwargs):
BaseBrowser.__init__(self, '', **kwargs)
Browser.__init__(self, '', **kwargs)
def iter_station_search(self, 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.browser import Page
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.capabilities.image import BaseImage
from weboob.capabilities.video import BaseVideo
@ -100,7 +100,7 @@ class VideoPage(Page):
return video
class CappedBrowser(BaseBrowser):
class CappedBrowser(Browser):
DOMAIN = 'capped.tv'
PROTOCOL = 'http'
ENCODING = None

View file

@ -18,7 +18,7 @@
# 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
@ -27,7 +27,7 @@ __all__ = ['ChampslibresBrowser']
# Browser
class ChampslibresBrowser(BaseBrowser):
class ChampslibresBrowser(Browser):
PROTOCOL = 'http'
ENCODING = 'utf-8'
PAGES = {

View file

@ -17,7 +17,7 @@
# You should have received a copy of the GNU Affero General Public License
# 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
@ -25,7 +25,7 @@ from .pages import IndexPage, TrackPage
__all__ = ['ChronopostBrowser']
class ChronopostBrowser(BaseBrowser):
class ChronopostBrowser(Browser):
PROTOCOL = 'http'
DOMAIN = 'www.chronopost.fr'
ENCODING = None

View file

@ -21,7 +21,7 @@
from urlparse import urlsplit, parse_qsl, urlparse
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 .pages import LoginPage, LoginErrorPage, AccountsPage, UserSpacePage, EmptyPage, \
@ -33,12 +33,12 @@ __all__ = ['CICBrowser']
# Browser
class CICBrowser(BaseBrowser):
class CICBrowser(Browser):
PROTOCOL = 'https'
DOMAIN = 'www.cic.fr'
CERTHASH = 'b7f681798d4f414fb5cb4032a0b6e8e0d61eeea564a1fb2c1c5a6fc351c70c50'
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,
'https://www.cic.fr/.*/fr/identification/default.cgi': LoginErrorPage,
'https://www.cic.fr/.*/fr/banque/situation_financiere.cgi': AccountsPage,

View file

@ -19,7 +19,7 @@
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
@ -27,7 +27,7 @@ from .pages import LoginPage, SummaryPage, UselessPage, TransactionSearchPage, T
__all__ = ['CitelisBrowser']
class CitelisBrowser(BaseBrowser):
class CitelisBrowser(Browser):
PROTOCOL = 'https'
DOMAIN = 'adminpayment.citelis.fr'
ENCODING = 'UTF-8'
@ -45,7 +45,7 @@ class CitelisBrowser(BaseBrowser):
def __init__(self, merchant_id, *args, **kwargs):
self.merchant_id = merchant_id
BaseBrowser.__init__(self, *args, **kwargs)
Browser.__init__(self, *args, **kwargs)
def login(self):
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.capabilities.base import NotAvailable
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 decimal import Decimal
@ -84,7 +84,7 @@ class CmbModule(Module, CapBank):
)
]
BROWSER = BaseBrowser
BROWSER = Browser
islogged = False
def login(self):

View file

@ -18,7 +18,7 @@
# 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
@ -26,7 +26,7 @@ from .pages import LoginPage, AccountsPage, TransactionsPage
__all__ = ['Cmso']
class Cmso(BaseBrowser):
class Cmso(Browser):
PROTOCOL = 'https'
DOMAIN = 'www.cmso.com'
ENCODING = 'iso-8859-1'

View file

@ -17,14 +17,14 @@
# You should have received a copy of the GNU Affero General Public License
# 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
__all__ = ['ColispriveBrowser']
class ColispriveBrowser(BaseBrowser):
class ColispriveBrowser(Browser):
PROTOCOL = 'https'
DOMAIN = 'www.colisprive.com'
ENCODING = 'utf8'

View file

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

View file

@ -18,7 +18,7 @@
# 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.capabilities.bank import Transfer, TransferError
from .pages import LoginPage, AccountsList
@ -30,10 +30,10 @@ import re
__all__ = ['CragrMobile']
class CragrMobile(BaseBrowser):
class CragrMobile(Browser):
PROTOCOL = 'https'
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
SESSION_REGEXP = '(?:|%s[A-Z0-9]+)' % re.escape(r';jsessionid=')
@ -49,7 +49,7 @@ class CragrMobile(BaseBrowser):
'https://[^/]+/accounting/showAccountDetail.+': AccountsList,
'https://[^/]+/accounting/showMoreAccountOperations.*': AccountsList,
}
BaseBrowser.__init__(self, *args, **kwargs)
Browser.__init__(self, *args, **kwargs)
def viewing_html(self):
"""
@ -82,7 +82,7 @@ class CragrMobile(BaseBrowser):
# Are we on the good page?
if not self.is_on_page(LoginPage):
self.logger.debug('going to login page')
BaseBrowser.home(self)
Browser.home(self)
self.logger.debug('attempting to log in')
self.page.login(self.username, self.password)
self.is_logging = False
@ -109,7 +109,7 @@ class CragrMobile(BaseBrowser):
return
# simply go to http(s)://the.doma.in/
BaseBrowser.home(self)
Browser.home(self)
if self.is_on_page(LoginPage):
if not self.is_logged():

View file

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

View file

@ -19,7 +19,7 @@
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
@ -27,7 +27,7 @@ from .pages import LoginPage, LoggedPage, AccountsPage, TransactionsPage, Transa
__all__ = ['CreditCooperatif']
class CreditCooperatif(BaseBrowser):
class CreditCooperatif(Browser):
PROTOCOL = 'https'
ENCODING = 'iso-8859-15'
DOMAIN = "www.credit-cooperatif.coop"

View file

@ -17,7 +17,7 @@
# You should have received a copy of the GNU Affero General Public License
# 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
@ -25,7 +25,7 @@ from .pages import LoginPage, AccountsPage, ITransactionsPage, TransactionsPage,
__all__ = ['CreditCooperatif']
class CreditCooperatif(BaseBrowser):
class CreditCooperatif(Browser):
PROTOCOL = 'https'
ENCODING = 'iso-8859-15'
DOMAIN = "www.coopanet.com"
@ -40,7 +40,7 @@ class CreditCooperatif(BaseBrowser):
def __init__(self, *args, **kwargs):
self.strong_auth = kwargs.pop('strong_auth', False)
BaseBrowser.__init__(self, *args, **kwargs)
Browser.__init__(self, *args, **kwargs)
def home(self):
self.location("/banque/sso/")

View file

@ -21,7 +21,7 @@
import re
import urllib
from weboob.tools.browser import BaseBrowser, BrowserIncorrectPassword
from weboob.tools.browser import Browser, BrowserIncorrectPassword
from .pages import LoginPage, AccountsPage, ProAccountsPage, TransactionsPage, ProTransactionsPage
@ -29,7 +29,7 @@ from .pages import LoginPage, AccountsPage, ProAccountsPage, TransactionsPage, P
__all__ = ['CreditDuNordBrowser']
class CreditDuNordBrowser(BaseBrowser):
class CreditDuNordBrowser(Browser):
PROTOCOL = 'https'
ENCODING = 'UTF-8'
PAGES = {'https://[^/]+/?': LoginPage,
@ -43,7 +43,7 @@ class CreditDuNordBrowser(BaseBrowser):
def __init__(self, website, *args, **kwargs):
self.DOMAIN = website
BaseBrowser.__init__(self, *args, **kwargs)
Browser.__init__(self, *args, **kwargs)
def is_logged(self):
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/>.
from weboob.tools.browser import BaseBrowser, BrowserHTTPNotFound
from weboob.tools.browser import Browser, BrowserHTTPNotFound
from .pages import RecipePage, ResultsPage
@ -26,11 +26,11 @@ from .pages import RecipePage, ResultsPage
__all__ = ['CuisineazBrowser']
class CuisineazBrowser(BaseBrowser):
class CuisineazBrowser(Browser):
DOMAIN = 'www.cuisineaz.com'
PROTOCOL = 'http'
ENCODING = 'utf-8'
USER_AGENT = BaseBrowser.USER_AGENTS['wget']
USER_AGENT = Browser.USER_AGENTS['wget']
PAGES = {
'http://www.cuisineaz.com/recettes/recherche_v2.aspx\?recherche=.*': ResultsPage,
'http://www.cuisineaz.com/recettes/.*[0-9]*.aspx': RecipePage,

View file

@ -19,7 +19,7 @@
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 .pages import IndexPage, VideoPage, KidsVideoPage
@ -29,7 +29,7 @@ from .video import DailymotionVideo
__all__ = ['DailymotionBrowser']
class DailymotionBrowser(BaseBrowser):
class DailymotionBrowser(Browser):
DOMAIN = 'www.dailymotion.com'
ENCODING = None
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/>.
from weboob.tools.browser import BaseBrowser, BrowserIncorrectPassword
from weboob.tools.browser import Browser, BrowserIncorrectPassword
from .pages import LoginPage, DashboardPage, OperationsPage, LCRPage
@ -26,7 +26,7 @@ from .pages import LoginPage, DashboardPage, OperationsPage, LCRPage
__all__ = ['DelubacBrowser']
class DelubacBrowser(BaseBrowser):
class DelubacBrowser(Browser):
PROTOCOL = 'https'
DOMAIN = 'vbankonline.delubac.com'
ENCODING = None

View file

@ -23,7 +23,7 @@ import re
import hashlib
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 .pages.index import IndexPage, LoginPage
@ -35,7 +35,7 @@ from .tools import id2url, url2id
# Browser
class DLFP(BaseBrowser):
class DLFP(Browser):
DOMAIN = 'linuxfr.org'
PROTOCOL = 'https'
PAGES = {'https?://[^/]*linuxfr\.org/?': IndexPage,

View file

@ -17,7 +17,7 @@
# You should have received a copy of the GNU Affero General Public License
# 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 decimal import Decimal
from .pages import LoginPage, FirstRedirectionPage, SecondRedirectionPage, OtherPage, AccountPage, BillsPage, LastPaymentsPage, LastPaymentsPage2
@ -25,7 +25,7 @@ from .pages import LoginPage, FirstRedirectionPage, SecondRedirectionPage, Other
__all__ = ['EdfBrowser']
class EdfBrowser(BaseBrowser):
class EdfBrowser(Browser):
PROTOCOL = 'https'
DOMAIN = 'monagencepart.edf.fr'
ENCODING = None

View file

@ -17,7 +17,7 @@
# You should have received a copy of the GNU Affero General Public License
# 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 .pages import IndexPage, GalleryPage, ImagePage, HomePage, LoginPage
@ -27,7 +27,7 @@ from .gallery import EHentaiImage
__all__ = ['EHentaiBrowser']
class EHentaiBrowser(BaseBrowser):
class EHentaiBrowser(Browser):
ENCODING = None
PAGES = {
r'http://[^/]+/': IndexPage,
@ -41,7 +41,7 @@ class EHentaiBrowser(BaseBrowser):
def __init__(self, domain, username, password, *args, **kwargs):
self.DOMAIN = domain
self.logged = False
BaseBrowser.__init__(self, parser=('lxmlsoup',), *args, **kwargs)
Browser.__init__(self, parser=('lxmlsoup',), *args, **kwargs)
if password:
self.login(username, password)

View file

@ -19,7 +19,7 @@
# 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 .pages.index import IndexPage
@ -30,7 +30,7 @@ from .video import EuroparlVideo
__all__ = ['EuroparlBrowser']
class EuroparlBrowser(BaseBrowser):
class EuroparlBrowser(Browser):
DOMAIN = 'europarl.europa.eu'
ENCODING = None
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 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.accounts_list import GlobalAccountsList, AccountsList, AccountHistoryPage
@ -30,7 +30,7 @@ from .pages.accounts_list import GlobalAccountsList, AccountsList, AccountHistor
__all__ = ['Fortuneo']
class Fortuneo(BaseBrowser):
class Fortuneo(Browser):
DOMAIN_LOGIN = 'www.fortuneo.fr'
DOMAIN = 'www.fortuneo.fr'
PROTOCOL = 'https'
@ -49,7 +49,7 @@ class Fortuneo(BaseBrowser):
}
def __init__(self, *args, **kwargs):
BaseBrowser.__init__(self, *args, **kwargs)
Browser.__init__(self, *args, **kwargs)
def home(self):
"""main page (login)"""

View file

@ -18,12 +18,12 @@
# 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
class FourChan(BaseBrowser):
class FourChan(Browser):
DOMAIN = 'boards.4chan.org'
PAGES = {
'http://boards.4chan.org/\w+/': BoardPage,

View file

@ -18,7 +18,7 @@
# 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
@ -26,7 +26,7 @@ from .pages import LoginPage, AccountsPage, TransactionsPage
__all__ = ['GanAssurances']
class GanAssurances(BaseBrowser):
class GanAssurances(Browser):
PROTOCOL = 'https'
PAGES = {'https://[^/]+/wps/portal/login.*': LoginPage,
'https://[^/]+/wps/myportal/TableauDeBord': AccountsPage,
@ -35,7 +35,7 @@ class GanAssurances(BaseBrowser):
def __init__(self, website, *args, **kwargs):
self.DOMAIN = website
BaseBrowser.__init__(self, *args, **kwargs)
Browser.__init__(self, *args, **kwargs)
def is_logged(self):
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/>.
from weboob.tools.browser import BaseBrowser
from weboob.tools.browser import Browser
from .pages.index import IndexPage, LoginPage
from .pages.torrents import TorrentsPage
@ -27,7 +27,7 @@ from .pages.torrents import TorrentsPage
__all__ = ['GazelleBrowser']
class GazelleBrowser(BaseBrowser):
class GazelleBrowser(Browser):
PAGES = {'https?://[^/]+/?(index.php)?': IndexPage,
'https?://[^/]+/login.php': LoginPage,
'https?://[^/]+/torrents.php.*': TorrentsPage,
@ -36,7 +36,7 @@ class GazelleBrowser(BaseBrowser):
def __init__(self, protocol, domain, *args, **kwargs):
self.DOMAIN = domain
self.PROTOCOL = protocol
BaseBrowser.__init__(self, *args, **kwargs)
Browser.__init__(self, *args, **kwargs)
def login(self):
if not self.is_on_page(LoginPage):

View file

@ -20,7 +20,7 @@
import urllib
from weboob.tools.browser import BaseBrowser, BrowserIncorrectPassword, BrowserUnavailable,\
from weboob.tools.browser import Browser, BrowserIncorrectPassword, BrowserUnavailable,\
BrowserBanned
from weboob.tools.browser.decorators import id2url
@ -36,7 +36,7 @@ from weboob.capabilities.base import NotAvailable
__all__ = ['GDCVaultBrowser']
class GDCVaultBrowser(BaseBrowser):
class GDCVaultBrowser(Browser):
DOMAIN = 'gdcvault.com'
ENCODING = 'utf-8'
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/>.
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
__all__ = ['GdfSuez']
class GdfSuez(BaseBrowser):
class GdfSuez(Browser):
PROTOCOL = 'https'
DOMAIN = 'www.gdfsuez-dolcevita.fr'
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'
def __init__(self, *args, **kwargs):
BaseBrowser.__init__(self, *args, **kwargs)
Browser.__init__(self, *args, **kwargs)
def home(self):
self.location(self.homep)

View file

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

View file

@ -18,7 +18,7 @@
# 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 base64 import b64encode
import datetime
@ -31,14 +31,14 @@ __all__ = ['GithubBrowser']
class GithubBrowser(BaseBrowser):
class GithubBrowser(Browser):
PROTOCOL = 'https'
DOMAIN = 'api.github.com'
ENCODING = 'utf-8'
def __init__(self, *a, **kw):
kw['parser'] = 'json'
BaseBrowser.__init__(self, *a, **kw)
Browser.__init__(self, *a, **kw)
self.fewer_requests = not bool(self.username)
def home(self):

View file

@ -20,7 +20,7 @@
import urllib
from weboob.tools.browser import BaseBrowser
from weboob.tools.browser import Browser
from .pages import TranslatePage
@ -28,16 +28,16 @@ from .pages import TranslatePage
__all__ = ['GoogleTranslateBrowser']
class GoogleTranslateBrowser(BaseBrowser):
class GoogleTranslateBrowser(Browser):
DOMAIN = 'translate.google.com'
ENCODING = 'UTF-8'
USER_AGENT = BaseBrowser.USER_AGENTS['desktop_firefox']
USER_AGENT = Browser.USER_AGENTS['desktop_firefox']
PAGES = {
'https?://translate\.google\.com': TranslatePage
}
def __init__(self, *args, **kwargs):
BaseBrowser.__init__(self, *args, **kwargs)
Browser.__init__(self, *args, **kwargs)
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
# 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.capabilities.audio import BaseAudio, Album, Playlist
from weboob.capabilities.image import BaseImage
@ -42,7 +42,7 @@ class APIError(Exception):
pass
class GroovesharkBrowser(BaseBrowser):
class GroovesharkBrowser(Browser):
PROTOCOL = 'http'
DOMAIN = 'html5.grooveshark.com'
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/>.
from weboob.tools.browser import BaseBrowser
from weboob.tools.browser import Browser
from weboob.tools.date import datetime
from weboob.tools.parsers.jsonparser import json
from urllib import urlencode
@ -29,14 +29,14 @@ from urllib import urlencode
__all__ = ['GuerrillamailBrowser']
class GuerrillamailBrowser(BaseBrowser):
class GuerrillamailBrowser(Browser):
PROTOCOL = 'https'
DOMAIN = 'www.guerrillamail.com'
ENCODING = 'utf-8'
def __init__(self, *args, **kw):
kw['parser'] = 'raw'
BaseBrowser.__init__(self, *args, **kw)
Browser.__init__(self, *args, **kw)
def _get_unicode(self, url, *a):
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/>.
from weboob.tools.browser import BaseBrowser
from weboob.tools.browser import Browser
from .pages import ValidationPage, HomePage, HistoryPage, StoryPage, AuthorPage
# Browser
class HDSBrowser(BaseBrowser):
class HDSBrowser(Browser):
ENCODING = 'ISO-8859-1'
DOMAIN = 'histoires-de-sexe.net'
PAGES = {'http://histoires-de-sexe.net/': ValidationPage,

View file

@ -23,7 +23,7 @@ import urllib
import mechanize
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 .perso.accounts_list import AccountsList, AccountPrelevement
@ -35,7 +35,7 @@ from .perso.messages import MessagePage, MessagesPage
__all__ = ['HelloBank']
class HelloBank(BaseBrowser):
class HelloBank(Browser):
DOMAIN = 'client.hellobank.fr'
PROTOCOL = 'https'
ENCODING = None # refer to the HTML encoding
@ -55,7 +55,7 @@ class HelloBank(BaseBrowser):
}
def __init__(self, *args, **kwargs):
BaseBrowser.__init__(self, *args, **kwargs)
Browser.__init__(self, *args, **kwargs)
def home(self):
self.location('https://client.hellobank.fr/banque/portail/digitale/HomeConnexion?type=homeconnex')

View file

@ -20,7 +20,7 @@
import re
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.cinema import Movie, Person
from weboob.tools.json import json
@ -32,11 +32,11 @@ from datetime import datetime
__all__ = ['ImdbBrowser']
class ImdbBrowser(BaseBrowser):
class ImdbBrowser(Browser):
DOMAIN = 'www.imdb.com'
PROTOCOL = 'http'
ENCODING = 'utf-8'
USER_AGENT = BaseBrowser.USER_AGENTS['wget']
USER_AGENT = Browser.USER_AGENTS['wget']
PAGES = {
'http://www.imdb.com/title/tt[0-9]*/fullcredits.*': MovieCrewPage,
'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/>.
from weboob.tools.browser import BaseBrowser
from weboob.tools.browser import Browser
from weboob.tools.browser.decorators import id2url
from .pages.video import VideoPage
@ -29,7 +29,7 @@ from .video import InaVideo
__all__ = ['InaBrowser']
class InaBrowser(BaseBrowser):
class InaBrowser(Browser):
DOMAIN = 'ina.fr'
PAGES = {'http://player.ina.fr/notices/.+\.mrss': (VideoPage, 'xml'),
'http://boutique\.ina\.fr/recherche/.+': SearchPage,

View file

@ -20,10 +20,10 @@
from .pages.article import ArticlePage
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"
PAGES = {
'http://www.lesinrocks.com/(?!inrockstv).+/.*': ArticlePage,

View file

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

View file

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

View file

@ -19,13 +19,13 @@
import datetime
from weboob.tools.browser import BaseBrowser
from weboob.tools.browser import Browser
__all__ = ['VelibBrowser']
class VelibBrowser(BaseBrowser):
class VelibBrowser(Browser):
ENCODING = 'utf-8'
API_KEY = '2282a34b49cf45d8129cdf93d88762914cece88b'
@ -33,7 +33,7 @@ class VelibBrowser(BaseBrowser):
def __init__(self, *a, **kw):
kw['parser'] = 'json'
BaseBrowser.__init__(self, *a, **kw)
Browser.__init__(self, *a, **kw)
def do_get(self, path, **query):
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/>.
from weboob.tools.browser import BaseBrowser
from weboob.tools.browser import Browser
from .pages import RoadmapSearchPage, RoadmapResultsPage, RoadmapPage, RoadmapAmbiguity
__all__ = ['JVMalin']
class JVMalin(BaseBrowser):
class JVMalin(Browser):
DOMAIN = 'www.jvmalin.fr'
PAGES = {
'http://www\.jvmalin\.fr/Itineraires/Recherche.*': RoadmapSearchPage,
@ -34,7 +34,7 @@ class JVMalin(BaseBrowser):
}
def __init__(self, **kwargs):
BaseBrowser.__init__(self, '', **kwargs)
Browser.__init__(self, '', **kwargs)
def get_roadmap(self, departure, arrival, filters):
self.location('/Itineraires/Recherche')

View file

@ -18,7 +18,7 @@
# 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
@ -26,11 +26,11 @@ from .pages import TorrentsPage, TorrentPage
__all__ = ['KickassBrowser']
class KickassBrowser(BaseBrowser):
class KickassBrowser(Browser):
DOMAIN = 'kickass.to'
PROTOCOL = 'https'
ENCODING = 'utf-8'
USER_AGENT = BaseBrowser.USER_AGENTS['wget']
USER_AGENT = Browser.USER_AGENTS['wget']
PAGES = {
'https://kickass.to/usearch/.*field=seeders&sorder=desc': TorrentsPage,
'https://kickass.to/.*.html': TorrentPage,

View file

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

View file

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

View file

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

View file

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

View file

@ -20,14 +20,14 @@
from .pages.article import ArticlePage, ActuPage
from .pages.flashactu import FlashActuPage
from weboob.tools.browser import BaseBrowser, Page
from weboob.tools.browser import Browser, Page
class IndexPage(Page):
pass
class NewspaperFigaroBrowser(BaseBrowser):
class NewspaperFigaroBrowser(Browser):
"NewspaperFigaroBrowser class"
ENCODING = "UTF-8"
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/>.
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"
PAGES = {"http://.*liberation.fr/.*": ArticlePage}

View file

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

View file

@ -18,7 +18,7 @@
# 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
import re
@ -28,11 +28,11 @@ from .pages import PageAll
__all__ = ['LutimBrowser']
class LutimBrowser(BaseBrowser):
class LutimBrowser(Browser):
ENCODING = 'utf-8'
def __init__(self, base_url, *args, **kw):
BaseBrowser.__init__(self, *args, **kw)
Browser.__init__(self, *args, **kw)
self.base_url = base_url
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/>.
from weboob.tools.browser import BaseBrowser, BrowserBanned
from weboob.tools.browser import Browser, BrowserBanned
from weboob.tools.date import datetime
from weboob.tools.parsers.jsonparser import json
import lxml.html
@ -28,14 +28,14 @@ import time
__all__ = ['MailinatorBrowser']
class MailinatorBrowser(BaseBrowser):
class MailinatorBrowser(Browser):
PROTOCOL = 'http'
DOMAIN = 'mailinator.com'
ENCODING = 'utf-8'
def __init__(self, *args, **kw):
kw['parser'] = 'raw'
BaseBrowser.__init__(self, *args, **kw)
Browser.__init__(self, *args, **kw)
def _get_unicode(self, url):
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/>.
from weboob.tools.browser import BaseBrowser, BrowserHTTPNotFound
from weboob.tools.browser import Browser, BrowserHTTPNotFound
from .pages import RecipePage, ResultsPage
@ -26,11 +26,11 @@ from .pages import RecipePage, ResultsPage
__all__ = ['MarmitonBrowser']
class MarmitonBrowser(BaseBrowser):
class MarmitonBrowser(Browser):
DOMAIN = 'www.marmiton.org'
PROTOCOL = 'http'
ENCODING = 'utf-8'
USER_AGENT = BaseBrowser.USER_AGENTS['wget']
USER_AGENT = Browser.USER_AGENTS['wget']
PAGES = {
'http://www.marmiton.org/recettes/recherche.aspx.*': ResultsPage,
'http://www.marmiton.org/recettes/recette_.*': RecipePage,

View file

@ -22,7 +22,7 @@ import urllib
import datetime
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.capabilities.content import Revision
@ -34,7 +34,7 @@ class APIError(Exception):
# Browser
class MediawikiBrowser(BaseBrowser):
class MediawikiBrowser(Browser):
ENCODING = 'utf-8'
def __init__(self, url, apiurl, *args, **kwargs):
@ -46,7 +46,7 @@ class MediawikiBrowser(BaseBrowser):
self.BASEPATH = self.BASEPATH[:-1]
self.apiurl = apiurl
BaseBrowser.__init__(self, *args, **kwargs)
Browser.__init__(self, *args, **kwargs)
def url2page(self, page):
baseurl = self.PROTOCOL + '://' + self.DOMAIN + self.BASEPATH

View file

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

View file

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

View file

@ -19,7 +19,7 @@
import urllib
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 .job import MonsterJobAdvert
@ -27,7 +27,7 @@ from .job import MonsterJobAdvert
__all__ = ['MonsterBrowser']
class MonsterBrowser(BaseBrowser):
class MonsterBrowser(Browser):
PROTOCOL = 'http'
DOMAIN = 'offres.monster.fr'
ENCODING = 'utf-8'

View file

@ -17,16 +17,16 @@
# You should have received a copy of the GNU Affero General Public License
# 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
__all__ = ['NectarineBrowser']
class NectarineBrowser(BaseBrowser):
class NectarineBrowser(Browser):
DOMAIN = 'www.scenemusic.net'
PROTOCOL = 'https'
ENCODING = 'utf-8'
USER_AGENT = BaseBrowser.USER_AGENTS['desktop_firefox']
USER_AGENT = Browser.USER_AGENTS['desktop_firefox']
PAGES = {
'https://www\.scenemusic\.net/demovibes/xml/streams/': StreamsPage,
'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/>.
from weboob.tools.browser import BaseBrowser, BrowserIncorrectPassword
from weboob.tools.browser import Browser, BrowserIncorrectPassword
from .pages import HomePage, LoginPage, HistoryPage, DetailsPage, BillsPage
__all__ = ['Nettokom']
class Nettokom(BaseBrowser):
class Nettokom(Browser):
DOMAIN = 'konto.nettokom.de'
PROTOCOL = 'https'
ENCODING = None # refer to the HTML encoding
@ -36,7 +36,7 @@ class Nettokom(BaseBrowser):
}
def __init__(self, *args, **kwargs):
BaseBrowser.__init__(self, *args, **kwargs)
Browser.__init__(self, *args, **kwargs)
def home(self):
self.location('/start.html')

View file

@ -17,16 +17,16 @@
# You should have received a copy of the GNU Affero General Public License
# 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
__all__ = ['NihonNoOtoBrowser']
class NihonNoOtoBrowser(BaseBrowser):
class NihonNoOtoBrowser(Browser):
DOMAIN = 'www.nihon-no-oto.com'
PROTOCOL = 'http'
ENCODING = 'utf-8'
USER_AGENT = BaseBrowser.USER_AGENTS['desktop_firefox']
USER_AGENT = Browser.USER_AGENTS['desktop_firefox']
PAGES = {
'http://www\.nihon-no-oto\.com/': LivePage,
'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/>.
from weboob.tools.browser import BaseBrowser, BrowserIncorrectPassword
from weboob.tools.browser import Browser, BrowserIncorrectPassword
import urllib
@ -28,8 +28,8 @@ from .pages import VideoPage, VideoListPage, FamilyPage, AboPage, LoginPage, Hom
__all__ = ['NolifeTVBrowser']
class NolifeTVBrowser(BaseBrowser):
USER_AGENT = BaseBrowser.USER_AGENTS['desktop_firefox']
class NolifeTVBrowser(Browser):
USER_AGENT = Browser.USER_AGENTS['desktop_firefox']
DOMAIN = 'mobile.nolife-tv.com'
PROTOCOL = 'http'
PAGES = { r'http://mobile.nolife-tv.com/online/familles-\w+/': FamilyPage,

View file

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

View file

@ -18,7 +18,7 @@
# 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
@ -27,10 +27,10 @@ __all__ = ['AloesBrowser']
# Browser
class AloesBrowser(BaseBrowser):
class AloesBrowser(Browser):
PROTOCOL = 'http'
ENCODING = 'utf-8'
USER_AGENT = BaseBrowser.USER_AGENTS['desktop_firefox']
USER_AGENT = Browser.USER_AGENTS['desktop_firefox']
#DEBUG_HTTP = True
DEBUG_HTTP = False
PAGES = {
@ -43,7 +43,7 @@ class AloesBrowser(BaseBrowser):
def __init__(self, baseurl, *args, **kwargs):
self.BASEURL = baseurl
BaseBrowser.__init__(self, *args, **kwargs)
Browser.__init__(self, *args, **kwargs)
def is_logged(self):

View file

@ -18,7 +18,7 @@
# 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 .pages import SubtitlesPage, SearchPage, SubtitlePage
@ -27,11 +27,11 @@ from .pages import SubtitlesPage, SearchPage, SubtitlePage
__all__ = ['OpensubtitlesBrowser']
class OpensubtitlesBrowser(BaseBrowser):
class OpensubtitlesBrowser(Browser):
DOMAIN = 'www.opensubtitles.org'
PROTOCOL = 'http'
ENCODING = 'utf-8'
USER_AGENT = BaseBrowser.USER_AGENTS['wget']
USER_AGENT = Browser.USER_AGENTS['wget']
PAGES = {
'http://www.opensubtitles.org.*search2/sublanguageid.*moviename.*': SearchPage,
'http://www.opensubtitles.org.*search/sublanguageid.*idmovie.*': SubtitlesPage,

View file

@ -23,13 +23,13 @@
from .pages import LoginPage, ComposePage, ConfirmPage
from weboob.tools.browser import BaseBrowser, BrowserIncorrectPassword
from weboob.tools.browser import Browser, BrowserIncorrectPassword
__all__ = ['OrangeBrowser']
class OrangeBrowser(BaseBrowser):
class OrangeBrowser(Browser):
DOMAIN = 'orange.fr'
PAGES = {
'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/>.
from weboob.tools.browser import BaseBrowser, BrowserIncorrectPassword
from weboob.tools.browser import Browser, BrowserIncorrectPassword
from weboob.tools.parsers.iparser import IParser
import BeautifulSoup
@ -33,7 +33,7 @@ class SoupParser(IParser):
return BeautifulSoup.BeautifulSoup(data.read().decode(encoding or 'utf-8'), convertEntities=BeautifulSoup.BeautifulStoneSoup.ALL_ENTITIES)
class OvsBrowser(BaseBrowser):
class OvsBrowser(Browser):
PROTOCOL = 'http'
DOMAIN = 'paris.onvasortir.com'
ENCODING = 'cp1252'
@ -62,7 +62,7 @@ class OvsBrowser(BaseBrowser):
}
kw['parser'] = SoupParser()
BaseBrowser.__init__(self, username, password, *a, **kw)
Browser.__init__(self, username, password, *a, **kw)
self.city = city
def iter_threads_list(self):

View file

@ -22,7 +22,7 @@ import urllib
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 .pages import SearchResultsPage, HousingPage
@ -31,7 +31,7 @@ from .pages import SearchResultsPage, HousingPage
__all__ = ['PapBrowser']
class PapBrowser(BaseBrowser):
class PapBrowser(Browser):
PROTOCOL = 'http'
DOMAIN = 'www.pap.fr'
ENCODING = 'utf-8'

View file

@ -18,7 +18,7 @@
# 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
@ -26,7 +26,7 @@ from .pages import PageList, PageList2, PageEvent
__all__ = ['ParisKiwiBrowser']
class ParisKiwiBrowser(BaseBrowser):
class ParisKiwiBrowser(Browser):
PROTOCOL = 'http'
DOMAIN = 'pariskiwi.org'
ENCODING = 'utf-8'
@ -39,7 +39,7 @@ class ParisKiwiBrowser(BaseBrowser):
def __init__(self, *a, **kw):
kw['parser'] = 'raw'
BaseBrowser.__init__(self, *a, **kw)
Browser.__init__(self, *a, **kw)
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')

View file

@ -18,7 +18,7 @@
# 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
@ -26,11 +26,11 @@ from .pages import SongResultsPage, SonglyricsPage, ArtistResultsPage, ArtistSon
__all__ = ['ParolesmaniaBrowser']
class ParolesmaniaBrowser(BaseBrowser):
class ParolesmaniaBrowser(Browser):
DOMAIN = 'www.parolesmania.com'
PROTOCOL = 'http'
ENCODING = 'utf-8'
USER_AGENT = BaseBrowser.USER_AGENTS['wget']
USER_AGENT = Browser.USER_AGENTS['wget']
PAGES = {
'http://www.parolesmania.com/recherche.php\?c=title.*': SongResultsPage,
'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/>.
from weboob.tools.browser import BaseBrowser, BrowserHTTPNotFound
from weboob.tools.browser import Browser, BrowserHTTPNotFound
from .pages import SongResultsPage, SonglyricsPage, ArtistResultsPage, ArtistSongsPage, HomePage
@ -26,11 +26,11 @@ from .pages import SongResultsPage, SonglyricsPage, ArtistResultsPage, ArtistSon
__all__ = ['ParolesmusiqueBrowser']
class ParolesmusiqueBrowser(BaseBrowser):
class ParolesmusiqueBrowser(Browser):
DOMAIN = 'www.paroles-musique.com'
PROTOCOL = 'http'
ENCODING = 'utf-8'
USER_AGENT = BaseBrowser.USER_AGENTS['wget']
USER_AGENT = Browser.USER_AGENTS['wget']
PAGES = {
'http://www.paroles-musique.com': HomePage,
'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/>.
from weboob.tools.browser import BaseBrowser, BrowserHTTPNotFound
from weboob.tools.browser import Browser, BrowserHTTPNotFound
from .pages import ResultsPage, SonglyricsPage, ArtistSongsPage, HomePage
@ -26,11 +26,11 @@ from .pages import ResultsPage, SonglyricsPage, ArtistSongsPage, HomePage
__all__ = ['ParolesnetBrowser']
class ParolesnetBrowser(BaseBrowser):
class ParolesnetBrowser(Browser):
DOMAIN = 'www.paroles.net'
PROTOCOL = 'http'
ENCODING = 'utf-8'
USER_AGENT = BaseBrowser.USER_AGENTS['wget']
USER_AGENT = Browser.USER_AGENTS['wget']
PAGES = {
'http://www.paroles.net': HomePage,
'http://www.paroles.net/search': ResultsPage,

View file

@ -18,7 +18,7 @@
# 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
import datetime
@ -26,7 +26,7 @@ import datetime
__all__ = ['Paypal']
class Paypal(BaseBrowser):
class Paypal(Browser):
DOMAIN = 'www.paypal.com'
PROTOCOL = 'https'
CERTHASH = ['b8f6c76050ed3035aab08474b1da0ff783f20d114b1740e8db275fe433ff69af', '96753399cf183334cef00a72719ea8e13cfe68d1e953006348f41f884180de15']

View file

@ -22,7 +22,7 @@ import re
import urllib
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 .pages.index import LoginPage
@ -34,7 +34,7 @@ __all__ = ['PhpBB']
# Browser
class PhpBB(BaseBrowser):
class PhpBB(Browser):
PAGES = {'https?://.*/index.php': ForumPage,
'https?://.*/': ForumPage,
'https?://.*/viewforum.php\?f=(\d+)': ForumPage,
@ -52,10 +52,10 @@ class PhpBB(BaseBrowser):
self.PROTOCOL = v.scheme
self.DOMAIN = v.netloc
self.BASEPATH = v.path[:v.path.rfind('/')]
BaseBrowser.__init__(self, *args, **kwargs)
Browser.__init__(self, *args, **kwargs)
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):
self.location(self.url)

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