diff --git a/contrib/boobot.py b/contrib/boobot.py index f01de7e3377ef83de9740d6d9b4fd18f615b94bf..b6e48dec32ee4a216a4da291ef09e28d154f0c5d 100755 --- a/contrib/boobot.py +++ b/contrib/boobot.py @@ -38,7 +38,7 @@ from mechanize._html import EncodingFinder from weboob.core import Weboob -from weboob.tools.browser import StandardBrowser, BrowserUnavailable +from weboob.deprecated.browser import StandardBrowser, BrowserUnavailable from weboob.tools.misc import get_backtrace from weboob.tools.misc import to_unicode from weboob.tools.storage import StandardStorage diff --git a/docs/source/guides/module.rst b/docs/source/guides/module.rst index a26e919190d328311f78188f75fb070222d1bd05..7e53787627814a1713dd522eb89d2b24ff5ce4a9 100644 --- a/docs/source/guides/module.rst +++ b/docs/source/guides/module.rst @@ -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 ` class. * **module.py** - defines the main class of your module, which derives :class:`Module `. -* **browser.py** - your browser, derived from :class:`Browser `, is called by your module to interact with the supported website. +* **browser.py** - your browser, derived from :class:`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 @@ -179,14 +179,14 @@ what are expected returned objects, and what exceptions it may raises. Browser ******* -Most of modules use a class derived from :class:`PagesBrowser ` or -:class:`LoginBrowser ` (for authenticated websites) to interact with a website. +Most of modules use a class derived from :class:`PagesBrowser ` or +:class:`LoginBrowser ` (for authenticated websites) to interact with a website. Edit ``browser.py``:: # -*- coding: utf-8 -*- - from weboob.browser2 import PagesBrowser + from weboob.browser import PagesBrowser __all__ = ['ExampleBrowser'] @@ -195,7 +195,7 @@ Edit ``browser.py``:: There are several possible class attributes: -* **BASEURL** - base url of website used for absolute paths given to :class:`open() ` or :class:`location() ` +* **BASEURL** - base url of website used for absolute paths given to :class:`open() ` or :class:`location() ` * **PROFILE** - defines the behavior of your browser against the website. By default this is Firefox, but you can import other profiles * **TIMEOUT** - defines the timeout for requests (defaults to 10 seconds) * **VERIFY** - SSL verification (if the protocol used is **https**) @@ -205,15 +205,16 @@ Pages For each page you want to handle, you have to create an associated class derived from one of these classes: -* :class:`HTMLPage ` - a HTML page -* :class:`XMLPage ` - a XML document -* :class:`JsonPage ` - a Json object +* :class:`HTMLPage ` - a HTML page +* :class:`XMLPage ` - a XML document +* :class:`JsonPage ` - a Json object +* :class:`CsvPage ` - a CSV table In the file ``pages.py``, you can write, for example:: # -*- coding: utf-8 -*- - from weboob.browser2.page import HTMLPage + from weboob.browser.pages import HTMLPage __all__ = ['IndexPage', 'ListPage'] @@ -227,9 +228,9 @@ In the file ``pages.py``, you can write, for example:: ``IndexPage`` is the class we will use to get information from the home page of the website, and ``ListPage`` will handle pages which list accounts. -Then, you have to declare them in your browser, with the :class:`URL ` object:: +Then, you have to declare them in your browser, with the :class:`URL ` object:: - from weboob.browser2.page import PagesBrowser, URL + from weboob.browser import PagesBrowser, URL from .pages import IndexPage, ListPage # ... @@ -257,9 +258,9 @@ For example, we can now implement some methods in ``ExampleBrowser``:: return self.page.iter_accounts() -When calling the :func:`go() ` method, it reads the first regexp url of our :class:`URL ` object, and go on the page. +When calling the :func:`go() ` method, it reads the first regexp url of our :class:`URL ` object, and go on the page. -:func:`stay_or_go() ` is used when you want to relocate on the page only if we aren't already on it. +:func:`stay_or_go() ` is used when you want to relocate on the page only if we aren't already on it. Once we are on the ``ListPage``, we can call every methods of the ``page`` object. @@ -295,8 +296,8 @@ the method :func:`create_default_browser ` and to implement the function -:func:`do_login `:: +On the browser side, you need to inherit from :func:`LoginBrowser ` and to implement the function +:func:`do_login `:: class ExampleBrowser(LoginBrowser): login = URL('/login', LoginPage) @@ -319,7 +320,7 @@ Also, your ``LoginPage`` may look like:: form['password'] = password form.submit() -Then, each method on your browser which need your user to be authenticated may be decorated by :func:`need_login `:: +Then, each method on your browser which need your user to be authenticated may be decorated by :func:`need_login `:: class ExampleBrowser(LoginBrowser): accounts = URL('/accounts$', ListPage) @@ -329,9 +330,9 @@ Then, each method on your browser which need your user to be authenticated may b self.accounts.stay_or_go() return self.page.get_accounts() -The last thing to know is that :func:`need_login ` checks if the current page is a logged one by -reading the attribute :func:`logged ` of the instance. You can either define it yourself, as a -class boolean attribute or as a property, or to inherit your class from :class:`LoggedPage `. +The last thing to know is that :func:`need_login ` checks if the current page is a logged one by +reading the attribute :func:`logged ` of the instance. You can either define it yourself, as a +class boolean attribute or as a property, or to inherit your class from :class:`LoggedPage `. Parsing of pages @@ -342,7 +343,7 @@ Parsing of pages When your browser locates on a page, an instance of the class related to the -:class:`URL ` attribute which matches the url +:class:`URL ` attribute which matches the url is created. You can declare methods on your class to allow your browser to interact with it. diff --git a/modules/750g/browser.py b/modules/750g/browser.py index eeaff1166fa451f3c700e582102c295b87882d63..400db737c791571b3f52ab5847e0fbf0e43e2e65 100644 --- a/modules/750g/browser.py +++ b/modules/750g/browser.py @@ -18,7 +18,7 @@ # along with weboob. If not, see . -from weboob.tools.browser import Browser, BrowserHTTPNotFound +from weboob.deprecated.browser import Browser, BrowserHTTPNotFound from .pages import RecipePage, ResultsPage diff --git a/modules/750g/pages.py b/modules/750g/pages.py index ea69ee45897bce14c026520f4c84f872d51e7d9c..c29b0536fde717fb3608e51fcfec98e55b7a5ceb 100644 --- a/modules/750g/pages.py +++ b/modules/750g/pages.py @@ -20,7 +20,7 @@ from weboob.capabilities.recipe import Recipe, Comment from weboob.capabilities.base import NotAvailable, NotLoaded -from weboob.tools.browser import Page +from weboob.deprecated.browser import Page class ResultsPage(Page): diff --git a/modules/adecco/browser.py b/modules/adecco/browser.py index 40d19fd39df07db8bb96f8de7e57b6af45391ae8..f2d11414949f62a6727e6b1b238d42f0ca6381ed 100644 --- a/modules/adecco/browser.py +++ b/modules/adecco/browser.py @@ -17,8 +17,8 @@ # You should have received a copy of the GNU Affero General Public License # along with weboob. If not, see . -from weboob.tools.browser.decorators import id2url -from weboob.tools.browser import Browser +from weboob.deprecated.browser.decorators import id2url +from weboob.deprecated.browser import Browser from .job import AdeccoJobAdvert from .pages import SearchPage, AdvertPage import urllib diff --git a/modules/adecco/pages.py b/modules/adecco/pages.py index 353e387e2ad3746f58365d1656d4b19ec4f17d81..5cda47b833812016d9366e4013ad0015b0d85eef 100644 --- a/modules/adecco/pages.py +++ b/modules/adecco/pages.py @@ -18,7 +18,7 @@ # along with weboob. If not, see . -from weboob.tools.browser import Page +from weboob.deprecated.browser import Page from weboob.tools.html import html2text from .job import AdeccoJobAdvert import datetime diff --git a/modules/agendadulibre/browser.py b/modules/agendadulibre/browser.py index ef119687ef59ce3d9f67e6986fc6eb5e5589183e..e7c979b771e4e965044eae7e5139afadc73bc205 100644 --- a/modules/agendadulibre/browser.py +++ b/modules/agendadulibre/browser.py @@ -18,7 +18,7 @@ # along with weboob. If not, see . -from weboob.browser2 import PagesBrowser, URL +from weboob.browser import PagesBrowser, URL from .pages import EventListPage, EventPage from datetime import timedelta, date diff --git a/modules/agendadulibre/pages.py b/modules/agendadulibre/pages.py index 51f297e27dc760bed42a38a4a2438d939ae735c0..45fc402499746286ba312b9add92a4f8a70ef627 100644 --- a/modules/agendadulibre/pages.py +++ b/modules/agendadulibre/pages.py @@ -17,10 +17,10 @@ # You should have received a copy of the GNU Affero General Public License # along with weboob. If not, see . -from weboob.browser2.page import HTMLPage, method, pagination -from weboob.browser2.elements import ItemElement, ListElement -from weboob.browser2.filters.standard import Regexp, CleanText, DateTime, Filter, Type, Env, Format, CombineDate -from weboob.browser2.filters.html import Link, XPath, CleanHTML +from weboob.browser.pages import HTMLPage, pagination +from weboob.browser.elements import ItemElement, ListElement, method +from weboob.browser.filters.standard import Regexp, CleanText, DateTime, Filter, Type, Env, Format, CombineDate +from weboob.browser.filters.html import Link, XPath, CleanHTML from .calendar import AgendaDuLibreCalendarEvent from datetime import time, datetime, date diff --git a/modules/allocine/browser.py b/modules/allocine/browser.py index de40b7bad00cdecb949271f8c599986c7c60aa5d..12235949d6281b522ead4c741ae07af36aa7078e 100644 --- a/modules/allocine/browser.py +++ b/modules/allocine/browser.py @@ -20,7 +20,7 @@ from weboob.capabilities.base import NotAvailable, NotLoaded from weboob.capabilities.cinema import Movie, Person -from weboob.tools.browser import Browser +from weboob.deprecated.browser import Browser from weboob.tools.json import json import base64 import hashlib diff --git a/modules/alloresto/browser.py b/modules/alloresto/browser.py index 0c0872f9d6e578c4d8c94f9b5e043d4a1148ac91..a6ec0a451545f607c7793139c6d74e061afadcef 100644 --- a/modules/alloresto/browser.py +++ b/modules/alloresto/browser.py @@ -18,8 +18,8 @@ # along with weboob. If not, see . -from weboob.browser2 import LoginBrowser, URL, need_login -from weboob.core.exceptions import BrowserIncorrectPassword +from weboob.browser import LoginBrowser, URL, need_login +from weboob.exceptions import BrowserIncorrectPassword from .pages import LoginPage, AccountsPage diff --git a/modules/alloresto/pages.py b/modules/alloresto/pages.py index a8b74acbaac7197adcd19f2845741082c363987d..5a5399949088740330aa8d90d4d147412820dfc5 100644 --- a/modules/alloresto/pages.py +++ b/modules/alloresto/pages.py @@ -21,9 +21,9 @@ import datetime from decimal import Decimal -from weboob.browser2.page import HTMLPage, LoggedPage, method -from weboob.browser2.elements import ItemElement -from weboob.browser2.filters.standard import CleanDecimal, CleanText, Filter, TableCell +from weboob.browser.pages import HTMLPage, LoggedPage +from weboob.browser.elements import ItemElement, method +from weboob.browser.filters.standard import CleanDecimal, CleanText, Filter, TableCell from weboob.capabilities.bank import Account from weboob.tools.capabilities.bank.transactions import FrenchTransaction as Transaction diff --git a/modules/allrecipes/browser.py b/modules/allrecipes/browser.py index e4141c3689540bdbe646f4dc95547b0520eb2471..d45e643353d639facd7c77fc40241d4e265afb7b 100644 --- a/modules/allrecipes/browser.py +++ b/modules/allrecipes/browser.py @@ -18,7 +18,7 @@ # along with weboob. If not, see . -from weboob.tools.browser import Browser, BrowserHTTPNotFound +from weboob.deprecated.browser import Browser, BrowserHTTPNotFound from .pages import RecipePage, ResultsPage, FourOFourPage diff --git a/modules/allrecipes/pages.py b/modules/allrecipes/pages.py index d33684ec0e9d64f11d30bf84bd8c2a58ff8909b0..5060f431c9413aa01983a89aa7fc82b2b7fde58e 100644 --- a/modules/allrecipes/pages.py +++ b/modules/allrecipes/pages.py @@ -20,7 +20,7 @@ from weboob.capabilities.recipe import Recipe from weboob.capabilities.base import NotAvailable, NotLoaded -from weboob.tools.browser import Page +from weboob.deprecated.browser import Page class FourOFourPage(Page): diff --git a/modules/ameli/browser.py b/modules/ameli/browser.py index a8db71012349c5fdb7f53e459ddc2efe7ab56428..256e54cd709512a76b0c3efedd061abedf6de703 100644 --- a/modules/ameli/browser.py +++ b/modules/ameli/browser.py @@ -17,7 +17,7 @@ # You should have received a copy of the GNU Affero General Public License # along with weboob. If not, see . -from weboob.tools.browser import Browser, BrowserIncorrectPassword +from weboob.deprecated.browser import Browser, BrowserIncorrectPassword from weboob.capabilities.bill import Detail from decimal import Decimal from .pages import LoginPage, HomePage, AccountPage, LastPaymentsPage, PaymentDetailsPage, BillsPage diff --git a/modules/ameli/pages.py b/modules/ameli/pages.py index cc31a003f9e0e9aec9af10909f933ea79eabaa57..8abd1c4a5fcb147d55e35c0fc3a3abb01d8f09c8 100644 --- a/modules/ameli/pages.py +++ b/modules/ameli/pages.py @@ -22,7 +22,7 @@ import re import urllib from decimal import Decimal -from weboob.tools.browser import Page, BrokenPageError +from weboob.deprecated.browser import Page, BrokenPageError from weboob.capabilities.bill import Subscription, Detail, Bill diff --git a/modules/amelipro/browser.py b/modules/amelipro/browser.py index 028777b2f7888548a25605307ef590d674057152..2bcdb5b7fd08bbb5f4509165dfb64cf47a1ea1f0 100644 --- a/modules/amelipro/browser.py +++ b/modules/amelipro/browser.py @@ -18,7 +18,7 @@ # along with weboob. If not, see . import urllib -from weboob.tools.browser import Browser, BrowserIncorrectPassword +from weboob.deprecated.browser import Browser, BrowserIncorrectPassword from weboob.capabilities.bill import Detail from decimal import Decimal from .pages import LoginPage, HomePage, AccountPage, HistoryPage, BillsPage diff --git a/modules/amelipro/pages.py b/modules/amelipro/pages.py index 1057624edaa31a559c6e5c285d4cfd569a9f8be1..3e0cf9e4bfcfe55035cda5fb1ba278058fa39348 100644 --- a/modules/amelipro/pages.py +++ b/modules/amelipro/pages.py @@ -22,7 +22,7 @@ from decimal import Decimal import re import urllib -from weboob.tools.browser import Page +from weboob.deprecated.browser import Page from weboob.capabilities.bill import Subscription, Detail, Bill diff --git a/modules/americanexpress/browser.py b/modules/americanexpress/browser.py index aacf1994f9c9ec79ccfed372af86434a8b1e9a80..2fc95ccb268219c0a72e4afaf1caeb0bfc998aac 100644 --- a/modules/americanexpress/browser.py +++ b/modules/americanexpress/browser.py @@ -20,7 +20,7 @@ from urlparse import urlsplit, parse_qsl -from weboob.tools.browser import Browser, BrowserIncorrectPassword +from weboob.deprecated.browser import Browser, BrowserIncorrectPassword from .pages import LoginPage, AccountsPage, TransactionsPage diff --git a/modules/americanexpress/pages.py b/modules/americanexpress/pages.py index 3012ec5a3c3bfa4e1263baec12ce4f8e0efa80eb..35e939ec12f7e939b8cc02949eee648d7af1293a 100644 --- a/modules/americanexpress/pages.py +++ b/modules/americanexpress/pages.py @@ -22,7 +22,7 @@ from decimal import Decimal import re -from weboob.tools.browser import Page, BrokenPageError +from weboob.deprecated.browser import Page, BrokenPageError from weboob.capabilities.bank import Account from weboob.capabilities import NotAvailable from weboob.tools.capabilities.bank.transactions import FrenchTransaction as Transaction diff --git a/modules/apec/browser.py b/modules/apec/browser.py index 0cc8bd736ec9a7833f9550e3dfd06ca62893b55c..64514432618568889f19cd3686d6ed859005a1ed 100644 --- a/modules/apec/browser.py +++ b/modules/apec/browser.py @@ -17,8 +17,8 @@ # You should have received a copy of the GNU Affero General Public License # along with weboob. If not, see . -from weboob.tools.browser.decorators import id2url -from weboob.tools.browser import Browser +from weboob.deprecated.browser.decorators import id2url +from weboob.deprecated.browser import Browser import urllib from .pages import SearchPage, AdvertPage from .job import ApecJobAdvert diff --git a/modules/apec/pages.py b/modules/apec/pages.py index ea71a9a50d04a27317b343c6b6dbd92d50e4058e..c8c3a295794c7096fc944ffacd30501c2b14ece5 100644 --- a/modules/apec/pages.py +++ b/modules/apec/pages.py @@ -18,7 +18,7 @@ # along with weboob. If not, see . -from weboob.tools.browser import Page +from weboob.deprecated.browser import Page from weboob.tools.html import html2text import dateutil.parser import re diff --git a/modules/apivie/browser.py b/modules/apivie/browser.py index 0b6e00b5da7a56227eb1d7852a47b589ec2be30e..fb8775267aedd3b8ce377e9cc73038db708d6c60 100644 --- a/modules/apivie/browser.py +++ b/modules/apivie/browser.py @@ -18,7 +18,7 @@ # along with weboob. If not, see . -from weboob.tools.browser import Browser, BrowserIncorrectPassword +from weboob.deprecated.browser import Browser, BrowserIncorrectPassword from .pages import LoginPage, AccountsPage, OperationsPage diff --git a/modules/apivie/pages.py b/modules/apivie/pages.py index 347a855eded88c51bcef1f7657e7315d9b6bdfe9..ef242d6baba1fc1e85c58fefa18986b0ea620eee 100644 --- a/modules/apivie/pages.py +++ b/modules/apivie/pages.py @@ -21,7 +21,7 @@ from decimal import Decimal from weboob.capabilities.bank import Account -from weboob.tools.browser import Page +from weboob.deprecated.browser import Page from weboob.tools.capabilities.bank.transactions import FrenchTransaction diff --git a/modules/arretsurimages/browser.py b/modules/arretsurimages/browser.py index 3cf6aa7fdc757bea59e3b8b23f6567eadacd1f5d..40add9dbac707243e1044b89133ee2937d685a67 100644 --- a/modules/arretsurimages/browser.py +++ b/modules/arretsurimages/browser.py @@ -18,8 +18,8 @@ # along with weboob. If not, see . -from weboob.tools.browser import Browser, BrowserIncorrectPassword -from weboob.tools.browser.decorators import id2url +from weboob.deprecated.browser import Browser, BrowserIncorrectPassword +from weboob.deprecated.browser.decorators import id2url from .pages import VideoPage, IndexPage, LoginPage, LoginRedirectPage from .video import ArretSurImagesVideo diff --git a/modules/arretsurimages/pages.py b/modules/arretsurimages/pages.py index 8f9acd0b8d9d9bbe0bcd1e8d4e59854210253d69..ead810919f924eb42c9d23b09d777b5711591d52 100644 --- a/modules/arretsurimages/pages.py +++ b/modules/arretsurimages/pages.py @@ -21,7 +21,7 @@ from weboob.capabilities.base import UserError from weboob.capabilities.image import BaseImage -from weboob.tools.browser import Page, BrokenPageError +from weboob.deprecated.browser import Page, BrokenPageError from weboob.capabilities import NotAvailable diff --git a/modules/arte/browser.py b/modules/arte/browser.py index dba15b8acc73ddf78d0861ba4c10b2c3a225d8c7..86cbadead86335387230e39b0b7e4a6f2d33576e 100644 --- a/modules/arte/browser.py +++ b/modules/arte/browser.py @@ -25,8 +25,8 @@ from weboob.capabilities import NotAvailable from weboob.capabilities.image import BaseImage from weboob.tools.json import json as simplejson -from weboob.tools.browser import Browser -from weboob.tools.browser.decorators import id2url +from weboob.deprecated.browser import Browser +from weboob.deprecated.browser.decorators import id2url from .pages import ArteLivePage, ArteLiveVideoPage from .video import ArteVideo, ArteLiveVideo diff --git a/modules/arte/pages.py b/modules/arte/pages.py index c686d44b1bbd4304435a8ad8ae54190ae21d2237..fd64467281b996b2e5d30ff161e916b0fc8c1877 100644 --- a/modules/arte/pages.py +++ b/modules/arte/pages.py @@ -18,7 +18,7 @@ # along with weboob. If not, see . -from weboob.tools.browser import Page +from weboob.deprecated.browser import Page from weboob.tools.html import html2text from weboob.capabilities import NotAvailable from weboob.capabilities.image import BaseImage diff --git a/modules/attilasub/browser.py b/modules/attilasub/browser.py index b62a30bad80b7282d73d4ba9a6f864c9f0a54c4d..f16db679eaec5db675206655e421a26eef0b066a 100644 --- a/modules/attilasub/browser.py +++ b/modules/attilasub/browser.py @@ -18,7 +18,7 @@ # along with weboob. If not, see . -from weboob.tools.browser import Browser, BrowserHTTPNotFound +from weboob.deprecated.browser import Browser, BrowserHTTPNotFound from .pages import SubtitlesPage, SearchPage diff --git a/modules/attilasub/pages.py b/modules/attilasub/pages.py index 3e09ca66837ed879c185386097e10247e2d41548..7d590c79f92e29da0d0131f8f9f1a5b8fd74abda 100644 --- a/modules/attilasub/pages.py +++ b/modules/attilasub/pages.py @@ -20,7 +20,7 @@ from weboob.capabilities.subtitle import Subtitle from weboob.capabilities.base import NotAvailable -from weboob.tools.browser import Page +from weboob.deprecated.browser import Page class SearchPage(Page): diff --git a/modules/audioaddict/module.py b/modules/audioaddict/module.py index dc561e7a560b897f6c9b7aa7808082f43473f7b8..46515c4d5010d9b3807f8e45568d53caaa70fe1a 100644 --- a/modules/audioaddict/module.py +++ b/modules/audioaddict/module.py @@ -24,7 +24,7 @@ from weboob.capabilities.collection import CapCollection, Collection from weboob.tools.backend import Module, BackendConfig from weboob.tools.value import Value -from weboob.tools.browser import StandardBrowser +from weboob.deprecated.browser import StandardBrowser import time __all__ = ['AudioAddictModule'] diff --git a/modules/aum/browser.py b/modules/aum/browser.py index c023b6556f77a4fe24022f8059be3281b6581f88..71c23ff6a1674796caa8090285a4fa045d81f0a6 100644 --- a/modules/aum/browser.py +++ b/modules/aum/browser.py @@ -26,9 +26,10 @@ import urllib import urllib2 -from weboob.tools.browser import Browser, BrowserIncorrectPassword, BrowserHTTPNotFound, BrowserUnavailable -from weboob.browser2.page import LoginBrowser, HTMLPage -from weboob.browser2.filters.standard import CleanText +from weboob.deprecated.browser import Browser, BrowserIncorrectPassword, BrowserHTTPNotFound, BrowserUnavailable +from weboob.browser.browsers import LoginBrowser +from weboob.browser.pages import HTMLPage +from weboob.browser.filters.standard import CleanText from weboob.tools.json import json from weboob.tools.date import local2utc from weboob.tools.misc import to_unicode diff --git a/modules/aum/module.py b/modules/aum/module.py index 1d8c7fddf63f62753474633a9f7db18491af03f7..32b1546e9cf72de3a60a47f49a0e6bca3cb68738 100644 --- a/modules/aum/module.py +++ b/modules/aum/module.py @@ -31,7 +31,7 @@ from weboob.capabilities.contact import CapContact, ContactPhoto, Query, QueryError from weboob.capabilities.account import CapAccount, StatusField from weboob.tools.backend import Module, BackendConfig -from weboob.tools.browser import BrowserUnavailable, BrowserHTTPNotFound +from weboob.deprecated.browser import BrowserUnavailable, BrowserHTTPNotFound from weboob.tools.value import Value, ValueBool, ValueBackendPassword from weboob.tools.date import local2utc from weboob.tools.misc import to_unicode diff --git a/modules/aum/optim/profiles_walker.py b/modules/aum/optim/profiles_walker.py index e0a0debbdeeeb3ee0c8ffb05d43e99f7d30de2e5..8b87733294ecafe38d33b727427c870e7fd8a85c 100644 --- a/modules/aum/optim/profiles_walker.py +++ b/modules/aum/optim/profiles_walker.py @@ -19,7 +19,7 @@ from random import randint -from weboob.tools.browser import BrowserUnavailable +from weboob.deprecated.browser import BrowserUnavailable from weboob.capabilities.dating import Optimization from weboob.tools.log import getLogger diff --git a/modules/aum/optim/queries_queue.py b/modules/aum/optim/queries_queue.py index 563fd0cab762e3b8a79feef3140663f15b97ad70..b2cbea84adf5a0472dde1efc881b332e05da56c2 100644 --- a/modules/aum/optim/queries_queue.py +++ b/modules/aum/optim/queries_queue.py @@ -18,7 +18,7 @@ # along with weboob. If not, see . -from weboob.tools.browser import BrowserUnavailable +from weboob.deprecated.browser import BrowserUnavailable from weboob.capabilities.dating import Optimization from weboob.capabilities.contact import QueryError from weboob.tools.log import getLogger diff --git a/modules/aum/optim/visibility.py b/modules/aum/optim/visibility.py index b7ec7eaf985eb902a01f3ec60fb692e5fc5655cb..9fb4692ec45baa0a611a7847c1449b48bdb99379 100644 --- a/modules/aum/optim/visibility.py +++ b/modules/aum/optim/visibility.py @@ -18,7 +18,7 @@ # along with weboob. If not, see . -from weboob.tools.browser import BrowserUnavailable +from weboob.deprecated.browser import BrowserUnavailable from weboob.capabilities.dating import Optimization diff --git a/modules/aum/test.py b/modules/aum/test.py index 10bb4415fb91fceaf6adb9805044e9b2c26e3938..62914a5950b51df982603b495132fb4f6ecf3eeb 100644 --- a/modules/aum/test.py +++ b/modules/aum/test.py @@ -19,7 +19,7 @@ from weboob.tools.test import BackendTest -from weboob.tools.browser import BrowserUnavailable +from weboob.deprecated.browser import BrowserUnavailable class AuMTest(BackendTest): diff --git a/modules/axabanque/browser.py b/modules/axabanque/browser.py index 8a1b848d84c7ec49b3ce56d796866749802f1a80..7e23bed9e9e4fec328b777b3106ce7bf71268ad5 100644 --- a/modules/axabanque/browser.py +++ b/modules/axabanque/browser.py @@ -20,7 +20,7 @@ import urllib -from weboob.tools.browser import Browser, BrowserIncorrectPassword +from weboob.deprecated.browser import Browser, BrowserIncorrectPassword from .pages import LoginPage, AccountsPage, TransactionsPage, CBTransactionsPage, UnavailablePage diff --git a/modules/axabanque/pages.py b/modules/axabanque/pages.py index 830f8e9e0819ce9830d38559c7a982ecdcedf085..33626c83f7c65d289a084cf8c977c56da30e1a60 100644 --- a/modules/axabanque/pages.py +++ b/modules/axabanque/pages.py @@ -22,7 +22,7 @@ from decimal import Decimal, InvalidOperation import re -from weboob.tools.browser import Page as _BasePage, BrowserUnavailable, BrokenPageError +from weboob.deprecated.browser import Page as _BasePage, BrowserUnavailable, BrokenPageError from weboob.capabilities.bank import Account from weboob.tools.capabilities.bank.transactions import FrenchTransaction from weboob.tools.captcha.virtkeyboard import MappedVirtKeyboard diff --git a/modules/banqueaccord/browser.py b/modules/banqueaccord/browser.py index 2f1ab704f9b1c7436f6c8210f6320c8767e98469..fed455b6783d2dd784577bbfa2e619f744570c84 100644 --- a/modules/banqueaccord/browser.py +++ b/modules/banqueaccord/browser.py @@ -18,8 +18,8 @@ # along with weboob. If not, see . -from weboob.browser2 import LoginBrowser, need_login, URL -from weboob.core.exceptions import BrowserIncorrectPassword +from weboob.browser import LoginBrowser, need_login, URL +from weboob.exceptions import BrowserIncorrectPassword from .pages import LoginPage, IndexPage, AccountsPage, OperationsPage diff --git a/modules/banqueaccord/pages.py b/modules/banqueaccord/pages.py index 8f7adee41b460ce2c23fde050cab7a8356721a34..85f0b835fd5000c4e5224f26d8cb373059e4114e 100644 --- a/modules/banqueaccord/pages.py +++ b/modules/banqueaccord/pages.py @@ -24,13 +24,13 @@ from cStringIO import StringIO from weboob.capabilities.bank import Account -from weboob.browser2.page import HTMLPage, method, LoggedPage -from weboob.browser2.elements import ListElement, ItemElement -from weboob.browser2.filters.standard import CleanText, Regexp, CleanDecimal, Env -from weboob.browser2.filters.html import Attr +from weboob.browser.pages import HTMLPage, LoggedPage +from weboob.browser.elements import ListElement, ItemElement, method +from weboob.browser.filters.standard import CleanText, Regexp, CleanDecimal, Env +from weboob.browser.filters.html import Attr from weboob.tools.captcha.virtkeyboard import MappedVirtKeyboard, VirtKeyboardError from weboob.tools.capabilities.bank.transactions import FrenchTransaction -from weboob.core.exceptions import ParseError +from weboob.exceptions import ParseError class Transaction(FrenchTransaction): diff --git a/modules/banquepopulaire/browser.py b/modules/banquepopulaire/browser.py index 5dd347936829db8d4d56a3a95d1a698ee5225764..b1888db6cd96c10e685f14f49482cf27f0a710f6 100644 --- a/modules/banquepopulaire/browser.py +++ b/modules/banquepopulaire/browser.py @@ -20,7 +20,7 @@ import urllib -from weboob.tools.browser import Browser, BrowserIncorrectPassword, BrokenPageError +from weboob.deprecated.browser import Browser, BrowserIncorrectPassword, BrokenPageError from .pages import LoginPage, IndexPage, AccountsPage, CardsPage, TransactionsPage, \ UnavailablePage, RedirectPage, HomePage diff --git a/modules/banquepopulaire/pages.py b/modules/banquepopulaire/pages.py index 2529205635bdb5f4be244479aef5a3d16fb8e431..6627aa1a2c18185022b9e62079e537d0b8c465e2 100644 --- a/modules/banquepopulaire/pages.py +++ b/modules/banquepopulaire/pages.py @@ -24,7 +24,7 @@ import re from mechanize import Cookie, FormNotFoundError -from weboob.tools.browser import Page as _BasePage, BrowserUnavailable, BrokenPageError +from weboob.deprecated.browser import Page as _BasePage, BrowserUnavailable, BrokenPageError from weboob.capabilities.bank import Account from weboob.tools.capabilities.bank.transactions import FrenchTransaction diff --git a/modules/barclays/browser.py b/modules/barclays/browser.py index 24adf5af97dae6afdc1304e2039d273ab435e4b7..56dd7bc0a2b168272b80a8ea8007924f9a1ec12e 100644 --- a/modules/barclays/browser.py +++ b/modules/barclays/browser.py @@ -18,7 +18,7 @@ # along with weboob. If not, see . -from weboob.tools.browser import Browser, BrowserIncorrectPassword +from weboob.deprecated.browser import Browser, BrowserIncorrectPassword from .pages import LoginPage, Login2Page, IndexPage, AccountsPage, TransactionsPage, \ CardPage, ValuationPage, LoanPage, MarketPage diff --git a/modules/barclays/pages.py b/modules/barclays/pages.py index 27cb08e626015ef30ebb9eebeff1cec8404cc743..3707981eabe321b44a6c1d24ae66e944a350e68b 100644 --- a/modules/barclays/pages.py +++ b/modules/barclays/pages.py @@ -22,7 +22,7 @@ from decimal import Decimal import re -from weboob.tools.browser import Page +from weboob.deprecated.browser import Page from weboob.capabilities.bank import Account from weboob.tools.capabilities.bank.transactions import FrenchTransaction diff --git a/modules/biplan/browser.py b/modules/biplan/browser.py index 5c7903969b43fe088f36920b3903e5defa16527b..d7c65dbf4f07d57978bf42913c31a445098834e8 100644 --- a/modules/biplan/browser.py +++ b/modules/biplan/browser.py @@ -18,7 +18,7 @@ # along with weboob. If not, see . -from weboob.browser2 import PagesBrowser, URL +from weboob.browser import PagesBrowser, URL from .pages import ProgramPage, EventPage diff --git a/modules/biplan/pages.py b/modules/biplan/pages.py index 4732769d46ca8ac08b269c28ec1d5ea847e80293..30d5d533e31fb5a3d97e2d47fe81301b1a1a7a1c 100644 --- a/modules/biplan/pages.py +++ b/modules/biplan/pages.py @@ -23,10 +23,10 @@ import weboob.tools.date as date_util from .calendar import BiplanCalendarEventConcert, BiplanCalendarEventTheatre -from weboob.browser2.elements import ItemElement, SkipItem, ListElement -from weboob.browser2.page import HTMLPage, method -from weboob.browser2.filters.standard import Filter, CleanText, Env, Regexp, CombineDate -from weboob.browser2.filters.html import Link, CleanHTML +from weboob.browser.elements import ItemElement, SkipItem, ListElement, method +from weboob.browser.pages import HTMLPage +from weboob.browser.filters.standard import Filter, CleanText, Env, Regexp, CombineDate +from weboob.browser.filters.html import Link, CleanHTML class BiplanPrice(Filter): diff --git a/modules/bnporc/browser.py b/modules/bnporc/browser.py index 8d3eefaadfc40d040a40adb53357dabcea6ce82a..771d76af690f162e86e931f71ccdaa57d402d50f 100644 --- a/modules/bnporc/browser.py +++ b/modules/bnporc/browser.py @@ -22,7 +22,7 @@ from datetime import datetime from logging import warning -from weboob.tools.browser import Browser, BrowserIncorrectPassword, BrowserPasswordExpired +from weboob.deprecated.browser import Browser, BrowserIncorrectPassword, BrowserPasswordExpired from weboob.capabilities.bank import TransferError, Transfer from .perso.accounts_list import AccountsList, AccountPrelevement diff --git a/modules/bnporc/enterprise/browser.py b/modules/bnporc/enterprise/browser.py index a414d5dc9a9f036174f5dfa47c62e733915a804b..be9c66dfbe7ca2e5049b80cb75a0d05ceeb83c90 100644 --- a/modules/bnporc/enterprise/browser.py +++ b/modules/bnporc/enterprise/browser.py @@ -18,7 +18,7 @@ # along with weboob. If not, see . -from weboob.tools.browser import Browser, BrowserIncorrectPassword +from weboob.deprecated.browser import Browser, BrowserIncorrectPassword from .pages import LoginPage, AccountsPage, HistoryPage, UnknownPage diff --git a/modules/bnporc/enterprise/pages.py b/modules/bnporc/enterprise/pages.py index 204f392f02c7f74642907424da12f940bb738cd6..1d6752c2648c5580aa8de96ccb6c4d8e7613768d 100644 --- a/modules/bnporc/enterprise/pages.py +++ b/modules/bnporc/enterprise/pages.py @@ -24,7 +24,7 @@ import re from weboob.capabilities.bank import Account -from weboob.tools.browser import Page, BrokenPageError +from weboob.deprecated.browser import Page, BrokenPageError from weboob.tools.capabilities.bank.transactions import FrenchTransaction from weboob.tools.captcha.virtkeyboard import MappedVirtKeyboard, VirtKeyboardError from weboob.tools.misc import to_unicode diff --git a/modules/bnporc/perso/accounts_list.py b/modules/bnporc/perso/accounts_list.py index 4d8d596b6b26d637a6d6f701f8fd01cc9c80fb98..b264de549e74191e1d17e905ac7ab11cbf447651 100644 --- a/modules/bnporc/perso/accounts_list.py +++ b/modules/bnporc/perso/accounts_list.py @@ -24,7 +24,7 @@ from weboob.tools.capabilities.bank.transactions import FrenchTransaction from weboob.capabilities.bank import Account from weboob.capabilities.base import NotAvailable -from weboob.tools.browser import Page, BrokenPageError, BrowserPasswordExpired +from weboob.deprecated.browser import Page, BrokenPageError, BrowserPasswordExpired class AccountsList(Page): diff --git a/modules/bnporc/perso/login.py b/modules/bnporc/perso/login.py index 27edb8d7279f72c2d222013b214c70ecd01d5a89..8283f268e4ad05b7c9be2a6c67b362ac437d85a7 100644 --- a/modules/bnporc/perso/login.py +++ b/modules/bnporc/perso/login.py @@ -22,7 +22,7 @@ import re import urllib -from weboob.tools.browser import Page, BrowserUnavailable +from weboob.deprecated.browser import Page, BrowserUnavailable from weboob.tools.captcha.virtkeyboard import VirtKeyboard, VirtKeyboardError diff --git a/modules/bnporc/perso/messages.py b/modules/bnporc/perso/messages.py index 39c6338cf479a332f6631b42fa3f7d3ce63f4a4e..f48ef1fb53c96e4ae1a0fa135e017cc3b3dae9fa 100644 --- a/modules/bnporc/perso/messages.py +++ b/modules/bnporc/perso/messages.py @@ -18,7 +18,7 @@ # along with weboob. If not, see . -from weboob.tools.browser import Page, BrokenPageError +from weboob.deprecated.browser import Page, BrokenPageError from weboob.capabilities.messages import Message, Thread from weboob.capabilities.base import NotLoaded from weboob.tools.capabilities.messages.genericArticle import try_drop_tree diff --git a/modules/bnporc/perso/transactions.py b/modules/bnporc/perso/transactions.py index 4b49686cb810fed1c87d6bef59612cd10783ac98..d2034cac925dcbde8bef2a84d98f96e4a319312d 100644 --- a/modules/bnporc/perso/transactions.py +++ b/modules/bnporc/perso/transactions.py @@ -20,7 +20,7 @@ import re -from weboob.tools.browser import Page +from weboob.deprecated.browser import Page from weboob.tools.capabilities.bank.transactions import FrenchTransaction diff --git a/modules/bnporc/perso/transfer.py b/modules/bnporc/perso/transfer.py index fdbd6d63372b601baca28909e7e35dc505d39449..8c75b336222dafbde22217d2e554517c55ef4778 100644 --- a/modules/bnporc/perso/transfer.py +++ b/modules/bnporc/perso/transfer.py @@ -20,7 +20,7 @@ import re -from weboob.tools.browser import Page, BrowserPasswordExpired +from weboob.deprecated.browser import Page, BrowserPasswordExpired from weboob.tools.ordereddict import OrderedDict from weboob.capabilities.bank import TransferError diff --git a/modules/bnporc/pro.py b/modules/bnporc/pro.py index c7a9e4d64a6df2fa0b0d681a3b2485ad25d387dd..700dd54452a7d9820426f8f811ac1df700cf3cd3 100644 --- a/modules/bnporc/pro.py +++ b/modules/bnporc/pro.py @@ -24,7 +24,7 @@ from weboob.capabilities import NotAvailable from weboob.capabilities.bank import Account -from weboob.tools.browser import Page +from weboob.deprecated.browser import Page from .perso.transactions import Transaction diff --git a/modules/boursorama/browser.py b/modules/boursorama/browser.py index 9c3abad4478885b718c78fc45087a9fbf40ab691..456f355f570aed8942669a4f80a9cd642ac4bc00 100644 --- a/modules/boursorama/browser.py +++ b/modules/boursorama/browser.py @@ -20,7 +20,7 @@ # along with weboob. If not, see . -from weboob.tools.browser import Browser, BrowserIncorrectPassword +from weboob.deprecated.browser import Browser, BrowserIncorrectPassword from .pages import LoginPage, AccountsList, AccountHistory, CardHistory, UpdateInfoPage, AuthenticationPage diff --git a/modules/boursorama/pages/account_history.py b/modules/boursorama/pages/account_history.py index 580b249eb462996bb8907c3be28ef6f1e38c564f..378b039747460f6e8a4df354146bdea7dd8a5cc1 100644 --- a/modules/boursorama/pages/account_history.py +++ b/modules/boursorama/pages/account_history.py @@ -22,7 +22,7 @@ from urlparse import urlparse import re -from weboob.tools.browser import Page +from weboob.deprecated.browser import Page from weboob.tools.capabilities.bank.transactions import FrenchTransaction diff --git a/modules/boursorama/pages/accounts_list.py b/modules/boursorama/pages/accounts_list.py index fd564f81a8ff773ebaf1b9ccc136819f744a797c..3aeb03a234c995d6fda6420fbf7bd3dbeba838d0 100644 --- a/modules/boursorama/pages/accounts_list.py +++ b/modules/boursorama/pages/accounts_list.py @@ -22,7 +22,7 @@ from decimal import Decimal from weboob.capabilities.bank import Account -from weboob.tools.browser import Page +from weboob.deprecated.browser import Page from weboob.tools.capabilities.bank.transactions import FrenchTransaction diff --git a/modules/boursorama/pages/card_history.py b/modules/boursorama/pages/card_history.py index 5cb4db745e2bcd93414a5c5cf96c8d9a55def5b2..fda99c8f79948cef30ac70ea24c058dc104b8ac2 100644 --- a/modules/boursorama/pages/card_history.py +++ b/modules/boursorama/pages/card_history.py @@ -21,7 +21,7 @@ import re -from weboob.tools.browser import Page +from weboob.deprecated.browser import Page from weboob.tools.capabilities.bank.transactions import FrenchTransaction diff --git a/modules/boursorama/pages/login.py b/modules/boursorama/pages/login.py index db9bf288694db310da860f55abe16d9ca108e07a..332e66a13abc95d9ec7272c8ea86f63d302e59e1 100644 --- a/modules/boursorama/pages/login.py +++ b/modules/boursorama/pages/login.py @@ -22,7 +22,7 @@ import hashlib import urllib -from weboob.tools.browser import Page, BrowserIncorrectPassword +from weboob.deprecated.browser import Page, BrowserIncorrectPassword from weboob.tools.captcha.virtkeyboard import MappedVirtKeyboard diff --git a/modules/boursorama/pages/two_authentication.py b/modules/boursorama/pages/two_authentication.py index 2de119726c8879db0928a748af8247e9e0ccd33a..3549a5d072dd2bff20e5f262888485a3bf798a57 100644 --- a/modules/boursorama/pages/two_authentication.py +++ b/modules/boursorama/pages/two_authentication.py @@ -17,7 +17,7 @@ # You should have received a copy of the GNU Affero General Public License # along with weboob. If not, see . -from weboob.tools.browser import Page, BrowserIncorrectPassword +from weboob.deprecated.browser import Page, BrowserIncorrectPassword import urllib2 import re diff --git a/modules/bouygues/browser.py b/modules/bouygues/browser.py index fd4b69abb10dbd59d952f864cc1ad982d178554d..95491bd6f52499c0c3afaba414ae11b51f16dc1e 100644 --- a/modules/bouygues/browser.py +++ b/modules/bouygues/browser.py @@ -21,7 +21,7 @@ from .pages.compose import ComposeFrame, ComposePage, ConfirmPage, SentPage from .pages.login import LoginPage, LoginSASPage -from weboob.tools.browser import Browser, BrowserIncorrectPassword +from weboob.deprecated.browser import Browser, BrowserIncorrectPassword __all__ = ['BouyguesBrowser'] diff --git a/modules/bouygues/pages/compose.py b/modules/bouygues/pages/compose.py index dcbe38d77f59966da74c5b2acd890b2f72c576af..26c16aeb2a0521d22d4d200450aaa95f81d65f11 100644 --- a/modules/bouygues/pages/compose.py +++ b/modules/bouygues/pages/compose.py @@ -21,7 +21,7 @@ import re from weboob.capabilities.messages import CantSendMessage -from weboob.tools.browser import Page +from weboob.deprecated.browser import Page class ComposeFrame(Page): diff --git a/modules/bouygues/pages/login.py b/modules/bouygues/pages/login.py index 94dc4c27c0f201fa6d6d5894b6a77e0f7526821c..cff708b59aa04d9ed702594c2faa4fc446ea913c 100644 --- a/modules/bouygues/pages/login.py +++ b/modules/bouygues/pages/login.py @@ -18,7 +18,7 @@ # along with weboob. If not, see . -from weboob.tools.browser import Page +from weboob.deprecated.browser import Page class LoginPage(Page): diff --git a/modules/bp/browser.py b/modules/bp/browser.py index 141bd5df92af65a78d220e4a2c3f044ee8da1ca7..2b853d68d9e82e92043af484eb8615b517ff0baf 100644 --- a/modules/bp/browser.py +++ b/modules/bp/browser.py @@ -21,7 +21,7 @@ from urlparse import urlsplit, parse_qsl from datetime import datetime -from weboob.tools.browser import Browser, BrowserIncorrectPassword, BrowserBanned +from weboob.deprecated.browser import Browser, BrowserIncorrectPassword, BrowserBanned from .pages import LoginPage, Initident, CheckPassword, repositionnerCheminCourant, BadLoginPage, AccountDesactivate, \ AccountList, AccountHistory, CardsList, UnavailablePage, \ diff --git a/modules/bp/pages/accounthistory.py b/modules/bp/pages/accounthistory.py index 50f37de79d88f73fe42eb0c8b7f11caa56073874..5b2a5bcedbd52ae8197a50056832198610d6d4a4 100644 --- a/modules/bp/pages/accounthistory.py +++ b/modules/bp/pages/accounthistory.py @@ -22,7 +22,7 @@ import re from weboob.tools.capabilities.bank.transactions import FrenchTransaction -from weboob.tools.browser import Page +from weboob.deprecated.browser import Page class Transaction(FrenchTransaction): diff --git a/modules/bp/pages/accountlist.py b/modules/bp/pages/accountlist.py index 63b01dd99ce1117fe3708d90ef5a53877738038c..e25951486ce585d4d67da868942b59af4f8fc309 100644 --- a/modules/bp/pages/accountlist.py +++ b/modules/bp/pages/accountlist.py @@ -21,7 +21,7 @@ from decimal import Decimal from weboob.capabilities.bank import Account, AccountNotFound -from weboob.tools.browser import Page +from weboob.deprecated.browser import Page from weboob.tools.misc import to_unicode from weboob.tools.capabilities.bank.transactions import FrenchTransaction from weboob.tools.ordereddict import OrderedDict diff --git a/modules/bp/pages/login.py b/modules/bp/pages/login.py index 829d52fae1f9ea5a1811d9c1b6485db6ae497f64..651adbccf8c62329fac3fa0bc1774c8b0d9c843a 100644 --- a/modules/bp/pages/login.py +++ b/modules/bp/pages/login.py @@ -23,7 +23,7 @@ import re import lxml.etree as etree -from weboob.tools.browser import Page, BrowserUnavailable +from weboob.deprecated.browser import Page, BrowserUnavailable from weboob.tools.captcha.virtkeyboard import VirtKeyboard diff --git a/modules/bp/pages/transfer.py b/modules/bp/pages/transfer.py index 8731cc95a29180f1d450af096c2f3c8549c888f9..12ee8d3ad77bf54088ee6bedc00e94169d8ee8ae 100644 --- a/modules/bp/pages/transfer.py +++ b/modules/bp/pages/transfer.py @@ -21,7 +21,7 @@ import re from weboob.capabilities.bank import TransferError -from weboob.tools.browser import Page +from weboob.deprecated.browser import Page from weboob.tools.misc import to_unicode diff --git a/modules/bred/browser.py b/modules/bred/browser.py index a1d3474601f0f7b4420646a3266d7027563bae17..a3a8fc50cf15b1c27db47fedf2a23e7273996982 100644 --- a/modules/bred/browser.py +++ b/modules/bred/browser.py @@ -20,7 +20,7 @@ import urllib -from weboob.tools.browser import Browser, BrowserIncorrectPassword +from weboob.deprecated.browser import Browser, BrowserIncorrectPassword from .pages import LoginPage, LoginResultPage, AccountsPage, EmptyPage, TransactionsPage diff --git a/modules/bred/pages.py b/modules/bred/pages.py index 45bea8f36edec32a11308e61aa9084f44719d739..52c13c69bf9ae438b0cda68eeeb32e3eebb6f209 100644 --- a/modules/bred/pages.py +++ b/modules/bred/pages.py @@ -19,13 +19,13 @@ from mechanize import FormNotFoundError -from weboob.tools.mech import ClientForm +from weboob.deprecated.mech import ClientForm ControlNotFoundError = ClientForm.ControlNotFoundError from decimal import Decimal, InvalidOperation import re -from weboob.tools.browser import Page +from weboob.deprecated.browser import Page from weboob.tools.misc import to_unicode from weboob.tools.ordereddict import OrderedDict from weboob.capabilities.bank import Account diff --git a/modules/btdigg/browser.py b/modules/btdigg/browser.py index 3499b0673b8835b1635464ed8ada87b770702804..359722db05fbdd6bc3dcddb1e997b8fef726ea64 100644 --- a/modules/btdigg/browser.py +++ b/modules/btdigg/browser.py @@ -2,7 +2,7 @@ import urllib -from weboob.tools.browser import Browser +from weboob.deprecated.browser import Browser from .pages.index import IndexPage from .pages.torrents import TorrentsPage, TorrentPage diff --git a/modules/btdigg/pages/index.py b/modules/btdigg/pages/index.py index 94f58688a4bac242acc0ec8bc7cd363c4596a1ec..7f948f77ad272f1ce88c08b3de4d8da98f271f14 100644 --- a/modules/btdigg/pages/index.py +++ b/modules/btdigg/pages/index.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- -from weboob.tools.browser import Page +from weboob.deprecated.browser import Page class IndexPage(Page): diff --git a/modules/btdigg/pages/torrents.py b/modules/btdigg/pages/torrents.py index 4fc9a8423377bcabb023f22783341eaee9c997e8..aa97b3222247e6fc1431ddcc15f1414955d885c9 100644 --- a/modules/btdigg/pages/torrents.py +++ b/modules/btdigg/pages/torrents.py @@ -4,7 +4,7 @@ from urlparse import urlparse, parse_qs from weboob.tools.misc import get_bytes_size -from weboob.tools.browser import Page,BrokenPageError +from weboob.deprecated.browser import Page,BrokenPageError from weboob.capabilities.torrent import Torrent, MagnetOnly from weboob.capabilities.base import NotAvailable diff --git a/modules/btmon/browser.py b/modules/btmon/browser.py index 78c6e4d764a16800668299e5f17820ec05d97d1c..f2f14ec8505b0f162dbafa734c13f8f34e83a48d 100644 --- a/modules/btmon/browser.py +++ b/modules/btmon/browser.py @@ -18,7 +18,7 @@ # along with weboob. If not, see . -from weboob.tools.browser import Browser, BrowserHTTPNotFound +from weboob.deprecated.browser import Browser, BrowserHTTPNotFound from .pages import TorrentsPage, TorrentPage diff --git a/modules/btmon/pages.py b/modules/btmon/pages.py index fb2f7a6338c6bbdcf062cf90395b81d201457171..d9fa7e63beb16042d2d082c6938f780fdd9acf3e 100644 --- a/modules/btmon/pages.py +++ b/modules/btmon/pages.py @@ -22,7 +22,7 @@ from weboob.capabilities.torrent import Torrent from weboob.capabilities.base import NotAvailable, NotLoaded -from weboob.tools.browser import Page +from weboob.deprecated.browser import Page from weboob.tools.misc import get_bytes_size diff --git a/modules/caissedepargne/browser.py b/modules/caissedepargne/browser.py index 001d20d98015f0ed3fb3d48bf1e5fcc1298b81e8..b5772ee94f9ef37a913ab3e34b07e9c335bd7efa 100644 --- a/modules/caissedepargne/browser.py +++ b/modules/caissedepargne/browser.py @@ -22,7 +22,7 @@ import hashlib from urlparse import urlsplit -from weboob.tools.browser import Browser, BrowserIncorrectPassword +from weboob.deprecated.browser import Browser, BrowserIncorrectPassword from .pages import LoginPage, IndexPage, ErrorPage, UnavailablePage diff --git a/modules/caissedepargne/pages.py b/modules/caissedepargne/pages.py index 20d5ea2b74229ef7418e7d3bdfd9bdf10cc89be0..1d8c586f49c840db0f7ddff6e7dfb4595c9ea3ba 100644 --- a/modules/caissedepargne/pages.py +++ b/modules/caissedepargne/pages.py @@ -18,15 +18,15 @@ # along with weboob. If not, see . -from weboob.tools.mech import ClientForm +from weboob.deprecated.mech import ClientForm ControlNotFoundError = ClientForm.ControlNotFoundError from decimal import Decimal import re -from weboob.tools.mech import ClientForm +from weboob.deprecated.mech import ClientForm from weboob.tools.ordereddict import OrderedDict -from weboob.tools.browser import Page, BrokenPageError, BrowserUnavailable, BrowserIncorrectPassword +from weboob.deprecated.browser import Page, BrokenPageError, BrowserUnavailable, BrowserIncorrectPassword from weboob.capabilities import NotAvailable from weboob.capabilities.bank import Account from weboob.tools.capabilities.bank.transactions import FrenchTransaction diff --git a/modules/canalplus/browser.py b/modules/canalplus/browser.py index 9a0fd551dec24b562e7fcef713e1abb8c85b6324..107fbd729014e24bb1160fdfa7ae14d5e0be9ee5 100644 --- a/modules/canalplus/browser.py +++ b/modules/canalplus/browser.py @@ -22,8 +22,8 @@ import lxml.etree -from weboob.tools.browser import Browser -from weboob.tools.browser.decorators import id2url +from weboob.deprecated.browser import Browser +from weboob.deprecated.browser.decorators import id2url from .pages import ChannelsPage, VideoPage from .video import CanalplusVideo diff --git a/modules/canalplus/pages.py b/modules/canalplus/pages.py index 184e1d5b32485902bc3b06f0e1fd54773957547f..8230030fc37719acd99e7a1845d9b1e410595b94 100644 --- a/modules/canalplus/pages.py +++ b/modules/canalplus/pages.py @@ -20,7 +20,7 @@ from datetime import datetime import re -from weboob.tools.browser import Page +from weboob.deprecated.browser import Page from weboob.capabilities.collection import Collection from weboob.capabilities.base import NotAvailable, NotLoaded from weboob.capabilities.image import BaseImage diff --git a/modules/canaltp/browser.py b/modules/canaltp/browser.py index 57833fa0fbcbc6ab0c27d558d93aeb5f1f9f2ac8..b42871322d1801c57b47dd1746bb96f1782c59ae 100644 --- a/modules/canaltp/browser.py +++ b/modules/canaltp/browser.py @@ -20,9 +20,9 @@ from datetime import datetime, date, time -from weboob.tools.browser import Browser +from weboob.deprecated.browser import Browser from weboob.tools.misc import to_unicode -from weboob.tools.browser import BrokenPageError +from weboob.deprecated.browser import BrokenPageError __all__ = ['CanalTP'] diff --git a/modules/cappedtv/browser.py b/modules/cappedtv/browser.py index d56402a784921188befbbf5e16430ffd0cba3cc3..700ffb4a3c2b413fe427fd861eb0372a67174b86 100644 --- a/modules/cappedtv/browser.py +++ b/modules/cappedtv/browser.py @@ -13,10 +13,10 @@ import datetime 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 Browser -from weboob.tools.browser.decorators import id2url +from weboob.deprecated.browser import Page +from weboob.deprecated.browser import BrokenPageError +from weboob.deprecated.browser import Browser +from weboob.deprecated.browser.decorators import id2url from weboob.capabilities.image import BaseImage from weboob.capabilities.video import BaseVideo from weboob.tools.ordereddict import OrderedDict diff --git a/modules/carrefourbanque/browser.py b/modules/carrefourbanque/browser.py index 9e6d57f218b0385e76a6491802cb950d91ecb582..23a012d5867dec28d6fb0700dae0833872ce60c2 100644 --- a/modules/carrefourbanque/browser.py +++ b/modules/carrefourbanque/browser.py @@ -18,8 +18,8 @@ # along with weboob. If not, see . -from weboob.browser2 import LoginBrowser, URL, need_login -from weboob.core.exceptions import BrowserIncorrectPassword +from weboob.browser import LoginBrowser, URL, need_login +from weboob.exceptions import BrowserIncorrectPassword from .pages import LoginPage, HomePage, TransactionsPage diff --git a/modules/carrefourbanque/pages.py b/modules/carrefourbanque/pages.py index d951338636e9679759c01e7f268c0237d6434e43..5fd14ff13aa1bbc1bd441736d06dd79c119c7a9f 100644 --- a/modules/carrefourbanque/pages.py +++ b/modules/carrefourbanque/pages.py @@ -20,10 +20,10 @@ import re -from weboob.browser2.page import HTMLPage, method, LoggedPage -from weboob.browser2.elements import ListElement, ItemElement -from weboob.browser2.filters.standard import Regexp, CleanText, CleanDecimal, Format -from weboob.browser2.filters.html import Link +from weboob.browser.pages import HTMLPage, LoggedPage +from weboob.browser.elements import ListElement, ItemElement, method +from weboob.browser.filters.standard import Regexp, CleanText, CleanDecimal, Format +from weboob.browser.filters.html import Link from weboob.capabilities.bank import Account from weboob.tools.capabilities.bank.transactions import FrenchTransaction diff --git a/modules/cci/browser.py b/modules/cci/browser.py index 9f8de9f156b635f7438c95a9f6bb7446acb46587..2c3221a86a8038ef5fe031509e8bdcb7265e1013 100644 --- a/modules/cci/browser.py +++ b/modules/cci/browser.py @@ -17,7 +17,7 @@ # You should have received a copy of the GNU Affero General Public License # along with weboob. If not, see . -from weboob.browser2 import PagesBrowser, URL +from weboob.browser import PagesBrowser, URL from weboob.capabilities.job import BaseJobAdvert from .pages import SearchPage diff --git a/modules/cci/pages.py b/modules/cci/pages.py index 3395e3b3772538331abd94da1d19040db3d22bae..d3f034f42ea779a4ca4d4145463665f9e31fc433 100644 --- a/modules/cci/pages.py +++ b/modules/cci/pages.py @@ -17,10 +17,10 @@ # You should have received a copy of the GNU Affero General Public License # along with weboob. If not, see . -from weboob.browser2.page import HTMLPage, method -from weboob.browser2.elements import ItemElement, TableElement -from weboob.browser2.filters.standard import Filter, CleanText, Format, Env, DateTime, TableCell, Join -from weboob.browser2.filters.html import Link, CleanHTML +from weboob.browser.pages import HTMLPage +from weboob.browser.elements import ItemElement, TableElement, method +from weboob.browser.filters.standard import Filter, CleanText, Format, Env, DateTime, TableCell, Join +from weboob.browser.filters.html import Link, CleanHTML from weboob.capabilities.job import BaseJobAdvert diff --git a/modules/champslibres/browser.py b/modules/champslibres/browser.py index c82c0b47ca6508da2753b3433f6b289ac13803c7..0217deac05c433e6822145be69b96b2518c9e5c3 100644 --- a/modules/champslibres/browser.py +++ b/modules/champslibres/browser.py @@ -18,7 +18,7 @@ # along with weboob. If not, see . -from weboob.tools.browser import Browser, BrowserIncorrectPassword +from weboob.deprecated.browser import Browser, BrowserIncorrectPassword from .pages import LoginPage, HomePage, HistoryPage, RentedPage diff --git a/modules/champslibres/pages.py b/modules/champslibres/pages.py index b00cfc7b7c9344a60f228196fa45341c1e1bbef6..25fd10b71a50d54f07271660eb6414b42a98909e 100644 --- a/modules/champslibres/pages.py +++ b/modules/champslibres/pages.py @@ -19,8 +19,8 @@ from datetime import date from weboob.capabilities.library import Book, Renew -from weboob.tools.browser import Page -from weboob.tools.mech import ClientForm +from weboob.deprecated.browser import Page +from weboob.deprecated.mech import ClientForm from weboob.tools.html import html2text diff --git a/modules/chronopost/browser.py b/modules/chronopost/browser.py index a93fae365fe927ee14e29f544a73c2de910ba266..a87a174a1c85ec0649c444b2d642ff3c87b7bcc6 100644 --- a/modules/chronopost/browser.py +++ b/modules/chronopost/browser.py @@ -17,7 +17,7 @@ # You should have received a copy of the GNU Affero General Public License # along with weboob. If not, see . -from weboob.tools.browser import Browser +from weboob.deprecated.browser import Browser from .pages import IndexPage, TrackPage diff --git a/modules/chronopost/pages.py b/modules/chronopost/pages.py index c198149c07c765048d9f8a2272b36b431444bd9c..b7038228d394664ce8e7af70f4ea9138046ee2f6 100644 --- a/modules/chronopost/pages.py +++ b/modules/chronopost/pages.py @@ -23,7 +23,7 @@ from weboob.capabilities.parcel import Parcel, Event from weboob.capabilities import NotAvailable -from weboob.tools.browser import Page +from weboob.deprecated.browser import Page class IndexPage(Page): diff --git a/modules/cic/browser.py b/modules/cic/browser.py index 5fcbc4cc3c68a4ea185ddfda194584a1110e290f..4d747fba99dcebfb963eb0c6c4c48732ee30b884 100644 --- a/modules/cic/browser.py +++ b/modules/cic/browser.py @@ -21,7 +21,7 @@ from urlparse import urlsplit, parse_qsl, urlparse from datetime import datetime, timedelta -from weboob.tools.browser import Browser, BrowserIncorrectPassword +from weboob.deprecated.browser import Browser, BrowserIncorrectPassword from weboob.capabilities.bank import Transfer, TransferError from .pages import LoginPage, LoginErrorPage, AccountsPage, UserSpacePage, EmptyPage, \ diff --git a/modules/cic/pages.py b/modules/cic/pages.py index c9ee1f796b6abf314868af70a8f0192a8b88391a..f045c8c3c41635856ae9755bbd85cf1dfc942a7b 100644 --- a/modules/cic/pages.py +++ b/modules/cic/pages.py @@ -24,7 +24,7 @@ import re from dateutil.relativedelta import relativedelta -from weboob.tools.browser import Page, BrowserIncorrectPassword, BrokenPageError +from weboob.deprecated.browser import Page, BrowserIncorrectPassword, BrokenPageError from weboob.tools.ordereddict import OrderedDict from weboob.capabilities.bank import Account from weboob.tools.capabilities.bank.transactions import FrenchTransaction diff --git a/modules/citelis/browser.py b/modules/citelis/browser.py index 5cffa99516e53348f81fcd4fd1536e394d05f00b..6adf11fb44fa59fb3077cee1edeb5dee9ce8f55c 100644 --- a/modules/citelis/browser.py +++ b/modules/citelis/browser.py @@ -19,7 +19,7 @@ from weboob.capabilities.bank import Account -from weboob.tools.browser import Browser, BrowserIncorrectPassword +from weboob.deprecated.browser import Browser, BrowserIncorrectPassword from .pages import LoginPage, SummaryPage, UselessPage, TransactionSearchPage, TransactionsPage, TransactionsCsvPage diff --git a/modules/citelis/pages.py b/modules/citelis/pages.py index cf37192e7ed59e8ae2d067c0f5910566a520c101..e7d91dc92dcb85d25666dfbf239a55b11f2258c6 100644 --- a/modules/citelis/pages.py +++ b/modules/citelis/pages.py @@ -22,7 +22,7 @@ import datetime import re -from weboob.tools.browser import Page, BrowserIncorrectPassword +from weboob.deprecated.browser import Page, BrowserIncorrectPassword from weboob.tools.capabilities.bank.transactions import FrenchTransaction diff --git a/modules/cmb/module.py b/modules/cmb/module.py index 075e9ada307265041fd57df40313071b41f54b66..a4cc56798e02f204c75d5c3649ec9c0b4736d52c 100644 --- a/modules/cmb/module.py +++ b/modules/cmb/module.py @@ -22,8 +22,8 @@ from weboob.tools.backend import Module, BackendConfig from weboob.tools.value import ValueBackendPassword from weboob.capabilities.base import NotAvailable -from weboob.core.exceptions import BrowserIncorrectPassword, ParseError -from weboob.browser2 import Browser +from weboob.exceptions import BrowserIncorrectPassword, ParseError +from weboob.browser import Browser from re import match, compile, sub from decimal import Decimal diff --git a/modules/cmso/browser.py b/modules/cmso/browser.py index d45da6b239708c52713c150a8caeae37030604ac..bec6c2d95033cbcc3765d7fc4c1ade9f3abd8cd8 100644 --- a/modules/cmso/browser.py +++ b/modules/cmso/browser.py @@ -18,7 +18,7 @@ # along with weboob. If not, see . -from weboob.tools.browser import Browser, BrowserIncorrectPassword +from weboob.deprecated.browser import Browser, BrowserIncorrectPassword from .pages import LoginPage, AccountsPage, TransactionsPage diff --git a/modules/cmso/pages.py b/modules/cmso/pages.py index 9339372b5ced4e7ece96f04c2c7c0fc0beaf444b..940c616a977e4a48d4554999d676c2992e089361 100644 --- a/modules/cmso/pages.py +++ b/modules/cmso/pages.py @@ -22,7 +22,7 @@ from decimal import Decimal import re -from weboob.tools.browser import Page +from weboob.deprecated.browser import Page from weboob.capabilities.bank import Account from weboob.tools.capabilities.bank.transactions import FrenchTransaction diff --git a/modules/colisprive/browser.py b/modules/colisprive/browser.py index f37c5518c60bcc886e0e6f193783ea62e3655f3f..8e645fa653fdea26762eddc624b5bc310df711b2 100644 --- a/modules/colisprive/browser.py +++ b/modules/colisprive/browser.py @@ -17,7 +17,7 @@ # You should have received a copy of the GNU Affero General Public License # along with weboob. If not, see . -from weboob.tools.browser import Browser +from weboob.deprecated.browser import Browser from .pages import TrackPage, ErrorPage diff --git a/modules/colisprive/pages.py b/modules/colisprive/pages.py index 9d3e81ce403ff274349e83206d0753a49baeb7c7..70ee6241d0821d8c248f73a54b40f0181c2b79c3 100644 --- a/modules/colisprive/pages.py +++ b/modules/colisprive/pages.py @@ -18,7 +18,7 @@ # along with weboob. If not, see . from datetime import date -from weboob.tools.browser import Page +from weboob.deprecated.browser import Page from weboob.capabilities.parcel import Parcel, Event diff --git a/modules/colissimo/browser.py b/modules/colissimo/browser.py index 1ec1c747b08e6c4fe489dfc84788861d6db4a544..99259aa84e46ab23a72df5fe56a75c36f89c6570 100644 --- a/modules/colissimo/browser.py +++ b/modules/colissimo/browser.py @@ -18,7 +18,7 @@ # along with weboob. If not, see . from weboob.tools.json import json -from weboob.tools.browser import Browser, BrowserBanned +from weboob.deprecated.browser import Browser, BrowserBanned __all__ = ['ColissimoBrowser'] diff --git a/modules/cragr/mobile/browser.py b/modules/cragr/mobile/browser.py index e9fb9acf76b75454f23ca4b16a133993b0a6bb41..7a526943214f49a1eea30eae17f5b098b1c8786f 100644 --- a/modules/cragr/mobile/browser.py +++ b/modules/cragr/mobile/browser.py @@ -18,7 +18,7 @@ # along with weboob. If not, see . -from weboob.tools.browser import Browser, BrowserIncorrectPassword +from weboob.deprecated.browser import Browser, BrowserIncorrectPassword from weboob.tools.date import LinearDateGuesser from weboob.capabilities.bank import Transfer, TransferError from .pages import LoginPage, AccountsList diff --git a/modules/cragr/mobile/pages/base.py b/modules/cragr/mobile/pages/base.py index e8b33381cc4f7b51776996131f61bb564506d73b..24535de57c953d2506c382c2e3da8fe308a8ee4d 100644 --- a/modules/cragr/mobile/pages/base.py +++ b/modules/cragr/mobile/pages/base.py @@ -18,8 +18,8 @@ # along with weboob. If not, see . -from weboob.tools.browser import Page -from weboob.tools.browser import BrowserUnavailable +from weboob.deprecated.browser import Page +from weboob.deprecated.browser import BrowserUnavailable class CragrBasePage(Page): diff --git a/modules/cragr/mobile/pages/login.py b/modules/cragr/mobile/pages/login.py index ae85847aa4373e66d9f53803c5c5eb917f9b8ed5..2ea2c62c604332c66db575ebfdec57137422e67f 100644 --- a/modules/cragr/mobile/pages/login.py +++ b/modules/cragr/mobile/pages/login.py @@ -18,7 +18,7 @@ # along with weboob. If not, see . -from weboob.tools.mech import ClientForm +from weboob.deprecated.mech import ClientForm ControlNotFoundError = ClientForm.ControlNotFoundError from .base import CragrBasePage diff --git a/modules/cragr/web/browser.py b/modules/cragr/web/browser.py index 6d94d73a116fdfbd350c13bfaae10b4b0832038f..aa58afb2b8d9e285195114be2819887cc9b5af33 100644 --- a/modules/cragr/web/browser.py +++ b/modules/cragr/web/browser.py @@ -21,7 +21,7 @@ import urllib import re -from weboob.tools.browser import Browser, BrowserIncorrectPassword +from weboob.deprecated.browser import Browser, BrowserIncorrectPassword from weboob.tools.date import LinearDateGuesser from .pages import HomePage, LoginPage, LoginErrorPage, AccountsPage, \ diff --git a/modules/cragr/web/pages.py b/modules/cragr/web/pages.py index c1edec5b768ea06dd79321055e30e598777a256e..680c2105cbd4cedabdb02fd937c3a783e4bcc7a2 100644 --- a/modules/cragr/web/pages.py +++ b/modules/cragr/web/pages.py @@ -22,7 +22,7 @@ from weboob.tools.date import parse_french_date from weboob.capabilities.bank import Account -from weboob.tools.browser import Page, BrokenPageError +from weboob.deprecated.browser import Page, BrokenPageError from weboob.tools.capabilities.bank.transactions import FrenchTransaction as Transaction diff --git a/modules/creditcooperatif/perso/browser.py b/modules/creditcooperatif/perso/browser.py index 30813f3d4ee9720bb8b658cc56ce4083bcc1f100..49d74cc1926106aaa57cf854ba594908e198fe38 100644 --- a/modules/creditcooperatif/perso/browser.py +++ b/modules/creditcooperatif/perso/browser.py @@ -19,7 +19,7 @@ import urllib -from weboob.tools.browser import Browser, BrowserIncorrectPassword +from weboob.deprecated.browser import Browser, BrowserIncorrectPassword from .pages import LoginPage, LoggedPage, AccountsPage, TransactionsPage, TransactionsJSONPage, ComingTransactionsPage diff --git a/modules/creditcooperatif/perso/pages.py b/modules/creditcooperatif/perso/pages.py index 3a9224dba7688ee917f45308e82038aae697222f..008fd79a85485c4a7b5bd8bd89ae93cfb9c10ce7 100644 --- a/modules/creditcooperatif/perso/pages.py +++ b/modules/creditcooperatif/perso/pages.py @@ -22,7 +22,7 @@ import re from weboob.tools.json import json -from weboob.tools.browser import Page +from weboob.deprecated.browser import Page from weboob.capabilities.bank import Account from weboob.tools.capabilities.bank.transactions import FrenchTransaction diff --git a/modules/creditcooperatif/pro/browser.py b/modules/creditcooperatif/pro/browser.py index b40291b3728cb27eeea896bda8ca7b250efbbaca..35ec276bcf5983f3114d0b80efb27514769fc251 100644 --- a/modules/creditcooperatif/pro/browser.py +++ b/modules/creditcooperatif/pro/browser.py @@ -17,7 +17,7 @@ # You should have received a copy of the GNU Affero General Public License # along with weboob. If not, see . -from weboob.tools.browser import Browser, BrowserIncorrectPassword +from weboob.deprecated.browser import Browser, BrowserIncorrectPassword from .pages import LoginPage, AccountsPage, ITransactionsPage, TransactionsPage, ComingTransactionsPage, CardTransactionsPage diff --git a/modules/creditcooperatif/pro/pages.py b/modules/creditcooperatif/pro/pages.py index 1b9ffae746b7a9c67ad5485f8734b1f2596fcac9..d1ca85bde6737fcdf00b46b80968f8fcfcf36691 100644 --- a/modules/creditcooperatif/pro/pages.py +++ b/modules/creditcooperatif/pro/pages.py @@ -22,7 +22,7 @@ import re import time -from weboob.tools.browser import Page +from weboob.deprecated.browser import Page from weboob.capabilities.bank import Account from weboob.tools.capabilities.bank.transactions import FrenchTransaction diff --git a/modules/creditdunord/browser.py b/modules/creditdunord/browser.py index 705e8fc128d9a5d3997bcc85497c1374b48af54f..db711288dddfd0f0f21914dbdac59be664f991a7 100644 --- a/modules/creditdunord/browser.py +++ b/modules/creditdunord/browser.py @@ -21,7 +21,7 @@ import re import urllib -from weboob.tools.browser import Browser, BrowserIncorrectPassword +from weboob.deprecated.browser import Browser, BrowserIncorrectPassword from .pages import LoginPage, AccountsPage, ProAccountsPage, TransactionsPage, ProTransactionsPage diff --git a/modules/creditdunord/pages.py b/modules/creditdunord/pages.py index 6dcd7e8dc1af8be65a1283669ab064907746f6ad..25406eb756e96ec469d566abf9040534310e1e02 100644 --- a/modules/creditdunord/pages.py +++ b/modules/creditdunord/pages.py @@ -23,7 +23,7 @@ import re from cStringIO import StringIO -from weboob.tools.browser import Page, BrokenPageError +from weboob.deprecated.browser import Page, BrokenPageError from weboob.tools.json import json from weboob.capabilities.bank import Account from weboob.capabilities import NotAvailable diff --git a/modules/creditmutuel/browser.py b/modules/creditmutuel/browser.py index 310fee4dc02139766f0f5c2d9cf89d3d03d157f6..03d1c2c0c38cd9e5505a702dc007c96cfbe1eb5b 100644 --- a/modules/creditmutuel/browser.py +++ b/modules/creditmutuel/browser.py @@ -26,8 +26,10 @@ from datetime import datetime, timedelta from weboob.tools.compat import basestring -from weboob.browser2 import LoginBrowser, URL, Wget, need_login -from weboob.core.exceptions import BrowserIncorrectPassword +from weboob.browser.browsers import LoginBrowser, need_login +from weboob.browser.profiles import Wget +from weboob.browser.url import URL +from weboob.exceptions import BrowserIncorrectPassword from weboob.capabilities.bank import Transfer, TransferError from .pages import LoginPage, LoginErrorPage, AccountsPage, UserSpacePage, \ diff --git a/modules/creditmutuel/pages.py b/modules/creditmutuel/pages.py index 7ffc20f0a1eda393ca8f781b50f66afa53fe5115..5b595ffb4b87217c504265ea6950ea89a911f6b8 100644 --- a/modules/creditmutuel/pages.py +++ b/modules/creditmutuel/pages.py @@ -27,11 +27,11 @@ import re from dateutil.relativedelta import relativedelta -from weboob.browser2.page import HTMLPage, method, FormNotFound, LoggedPage -from weboob.browser2.elements import ListElement, ItemElement, SkipItem -from weboob.browser2.filters.standard import Filter, Env, CleanText, CleanDecimal, Field, TableCell -from weboob.browser2.filters.html import Link -from weboob.core.exceptions import BrowserIncorrectPassword +from weboob.browser.pages import HTMLPage, FormNotFound, LoggedPage +from weboob.browser.elements import ListElement, ItemElement, SkipItem, method +from weboob.browser.filters.standard import Filter, Env, CleanText, CleanDecimal, Field, TableCell +from weboob.browser.filters.html import Link +from weboob.exceptions import BrowserIncorrectPassword from weboob.capabilities import NotAvailable from weboob.capabilities.bank import Account from weboob.tools.capabilities.bank.transactions import FrenchTransaction diff --git a/modules/cuisineaz/browser.py b/modules/cuisineaz/browser.py index fce4887e50be4f619949bedc9ad588eea4a068fe..064b0b5c0f5474bf0f60d39e60a1a08138e087a6 100644 --- a/modules/cuisineaz/browser.py +++ b/modules/cuisineaz/browser.py @@ -18,7 +18,7 @@ # along with weboob. If not, see . -from weboob.tools.browser import Browser, BrowserHTTPNotFound +from weboob.deprecated.browser import Browser, BrowserHTTPNotFound from .pages import RecipePage, ResultsPage diff --git a/modules/cuisineaz/pages.py b/modules/cuisineaz/pages.py index 37f7615f951c3d06a30eb19c44eb69a1f0053191..537dce6a4ec36095ef9d6b35162cb9d67de1928b 100644 --- a/modules/cuisineaz/pages.py +++ b/modules/cuisineaz/pages.py @@ -20,7 +20,7 @@ from weboob.capabilities.recipe import Recipe, Comment from weboob.capabilities.base import NotAvailable, NotLoaded -from weboob.tools.browser import Page +from weboob.deprecated.browser import Page class ResultsPage(Page): diff --git a/modules/dailymotion/browser.py b/modules/dailymotion/browser.py index c531679eac616d01bfbe9a371f6512a663d2c6fd..7dfd78f843462bd416c9c624bdf78efd3ed26763 100644 --- a/modules/dailymotion/browser.py +++ b/modules/dailymotion/browser.py @@ -19,8 +19,8 @@ from urllib import quote_plus -from weboob.tools.browser import Browser -from weboob.tools.browser.decorators import id2url +from weboob.deprecated.browser import Browser +from weboob.deprecated.browser.decorators import id2url from .pages import IndexPage, VideoPage, KidsVideoPage from .video import DailymotionVideo diff --git a/modules/dailymotion/pages.py b/modules/dailymotion/pages.py index 11ddab4dccf0b0d9f681323db0b77c5d1f295ffb..4b0315ac03ac8dd46922311d07768badb5f66222 100644 --- a/modules/dailymotion/pages.py +++ b/modules/dailymotion/pages.py @@ -27,7 +27,7 @@ from weboob.capabilities import NotAvailable from weboob.capabilities.image import BaseImage from weboob.tools.html import html2text -from weboob.tools.browser import Page, BrokenPageError +from weboob.deprecated.browser import Page, BrokenPageError from .video import DailymotionVideo diff --git a/modules/delubac/browser.py b/modules/delubac/browser.py index 1c4ccc8c3e64e0f1db2d3dd545dea380807392c0..b9bac13cdbef802a71cf8779fb92d76682f62e5c 100644 --- a/modules/delubac/browser.py +++ b/modules/delubac/browser.py @@ -18,7 +18,7 @@ # along with weboob. If not, see . -from weboob.tools.browser import Browser, BrowserIncorrectPassword +from weboob.deprecated.browser import Browser, BrowserIncorrectPassword from .pages import LoginPage, DashboardPage, OperationsPage, LCRPage diff --git a/modules/delubac/pages.py b/modules/delubac/pages.py index 8fec3866f53427d6f545ba308e43bc4c00a7a415..71a682e8d8f2812b8a3564afde4b8da7de333d11 100644 --- a/modules/delubac/pages.py +++ b/modules/delubac/pages.py @@ -22,7 +22,7 @@ import re from weboob.capabilities.bank import Account -from weboob.tools.browser import Page +from weboob.deprecated.browser import Page from weboob.tools.capabilities.bank.transactions import FrenchTransaction diff --git a/modules/dlfp/browser.py b/modules/dlfp/browser.py index 5765a3b5cc7459237222edceb49e77f937912359..b6713cf0985dd3659ef30febdcd9115acb9cdb9d 100644 --- a/modules/dlfp/browser.py +++ b/modules/dlfp/browser.py @@ -23,7 +23,7 @@ import hashlib import lxml -from weboob.tools.browser import Browser, BrowserHTTPNotFound, BrowserHTTPError, BrowserIncorrectPassword, BrokenPageError +from weboob.deprecated.browser import Browser, BrowserHTTPNotFound, BrowserHTTPError, BrowserIncorrectPassword, BrokenPageError from weboob.capabilities.messages import CantSendMessage from .pages.index import IndexPage, LoginPage diff --git a/modules/dlfp/module.py b/modules/dlfp/module.py index 5ddbb1c9a887dbd60835f4332c0cd5eb788bca6f..13e32a7dd3c0fbd80f0430e98d8b2bc1aaeb6f47 100644 --- a/modules/dlfp/module.py +++ b/modules/dlfp/module.py @@ -24,7 +24,7 @@ import time from weboob.tools.backend import Module, BackendConfig -from weboob.tools.browser import BrowserForbidden +from weboob.deprecated.browser import BrowserForbidden from weboob.tools.newsfeed import Newsfeed from weboob.tools.value import Value, ValueBool, ValueBackendPassword from weboob.capabilities.messages import CapMessages, CapMessagesPost, Message, Thread, CantSendMessage diff --git a/modules/dlfp/pages/board.py b/modules/dlfp/pages/board.py index f95503b4e54ee2c0074ad5859ca283b89ca0d43d..8d4ba5199a0eecd18923a1a8d0c103a387d03d24 100644 --- a/modules/dlfp/pages/board.py +++ b/modules/dlfp/pages/board.py @@ -21,7 +21,7 @@ import re from logging import warning -from weboob.tools.browser import Page +from weboob.deprecated.browser import Page class Message(object): diff --git a/modules/dlfp/pages/index.py b/modules/dlfp/pages/index.py index f3ae76dc7b07383e40ca0eae6d842d1a5fd15656..d06b97631fde1a0efd91673c9fd9839725ba30a8 100644 --- a/modules/dlfp/pages/index.py +++ b/modules/dlfp/pages/index.py @@ -18,7 +18,7 @@ # along with weboob. If not, see . -from weboob.tools.browser import Page +from weboob.deprecated.browser import Page class DLFPPage(Page): diff --git a/modules/dlfp/pages/news.py b/modules/dlfp/pages/news.py index a10145a3d64b3708024f75faee6590654daf44de..1b2c57771c2e7998d868859406e79f017f69efa0 100644 --- a/modules/dlfp/pages/news.py +++ b/modules/dlfp/pages/news.py @@ -20,7 +20,7 @@ from datetime import datetime -from weboob.tools.browser import BrokenPageError +from weboob.deprecated.browser import BrokenPageError from weboob.tools.date import local2utc from ..tools import url2id diff --git a/modules/dlfp/pages/wiki.py b/modules/dlfp/pages/wiki.py index e59165fe156a358a1884183a2807ebeae50beb1d..eeafdb45538fb4a7e66e1a9180e112209148a0af 100644 --- a/modules/dlfp/pages/wiki.py +++ b/modules/dlfp/pages/wiki.py @@ -17,7 +17,7 @@ # You should have received a copy of the GNU Affero General Public License # along with weboob. If not, see . -from weboob.tools.browser import BrokenPageError +from weboob.deprecated.browser import BrokenPageError from .index import DLFPPage diff --git a/modules/dresdenwetter/browser.py b/modules/dresdenwetter/browser.py index 4742739c14e7693f843d6d01837e100f56273827..380be9cd8fbdb39a9de1543fb3fff86048cff3c8 100644 --- a/modules/dresdenwetter/browser.py +++ b/modules/dresdenwetter/browser.py @@ -18,7 +18,7 @@ # along with weboob. If not, see . -from weboob.browser2 import PagesBrowser, URL +from weboob.browser import PagesBrowser, URL from .pages import StartPage diff --git a/modules/dresdenwetter/pages.py b/modules/dresdenwetter/pages.py index 3c8595114d7c27491c8e90953109639a32e7fbcf..32a2bfbc42e59641897c3501d8138b659561f2a9 100644 --- a/modules/dresdenwetter/pages.py +++ b/modules/dresdenwetter/pages.py @@ -17,9 +17,9 @@ # You should have received a copy of the GNU Affero General Public License # along with weboob. If not, see . -from weboob.browser2.page import HTMLPage, method -from weboob.browser2.elements import ListElement, ItemElement -from weboob.browser2.filters.standard import CleanText, Regexp, Field, Filter, debug +from weboob.browser.pages import HTMLPage +from weboob.browser.elements import ListElement, ItemElement, method +from weboob.browser.filters.standard import CleanText, Regexp, Field, Filter, debug from weboob.capabilities.gauge import GaugeMeasure, GaugeSensor from weboob.capabilities.base import NotAvailable diff --git a/modules/ebonics/module.py b/modules/ebonics/module.py index 94a7250ccc5b7c6667da733bfdb9c878a5d8394d..cc2b02a6d73b98db214c53281254b35c75cd20b8 100644 --- a/modules/ebonics/module.py +++ b/modules/ebonics/module.py @@ -22,7 +22,7 @@ from weboob.capabilities.translate import CapTranslate, Translation, TranslationFail, LanguageNotSupported from weboob.tools.backend import Module -from weboob.tools.browser import StandardBrowser +from weboob.deprecated.browser import StandardBrowser __all__ = ['EbonicsModule'] diff --git a/modules/edf/browser.py b/modules/edf/browser.py index d853b1f374835c8699e5b9cd4037069f6f96b731..28d8b7aacd8edf1ad0f092e8ba04fcb64853d7b6 100644 --- a/modules/edf/browser.py +++ b/modules/edf/browser.py @@ -17,7 +17,7 @@ # You should have received a copy of the GNU Affero General Public License # along with weboob. If not, see . -from weboob.tools.browser import Browser, BrowserIncorrectPassword +from weboob.deprecated.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 diff --git a/modules/edf/pages.py b/modules/edf/pages.py index 777c64a47c3249486d7de87cd86983998f3dbc19..14361d93b72560979c393830fa40562e7197ef6c 100644 --- a/modules/edf/pages.py +++ b/modules/edf/pages.py @@ -22,7 +22,7 @@ import re import urllib from decimal import Decimal -from weboob.tools.browser import Page +from weboob.deprecated.browser import Page from weboob.capabilities.bill import Subscription, Detail, Bill base_url = "http://particuliers.edf.com/" diff --git a/modules/ehentai/browser.py b/modules/ehentai/browser.py index 96a8bc218a82898e749ce9dea5a4c162b82e1e46..4da0b18f199989c385ba8d1c5a6abae9614e2322 100644 --- a/modules/ehentai/browser.py +++ b/modules/ehentai/browser.py @@ -17,7 +17,7 @@ # You should have received a copy of the GNU Affero General Public License # along with weboob. If not, see . -from weboob.tools.browser import Browser, BrowserIncorrectPassword +from weboob.deprecated.browser import Browser, BrowserIncorrectPassword from urllib import urlencode from .pages import IndexPage, GalleryPage, ImagePage, HomePage, LoginPage diff --git a/modules/ehentai/pages.py b/modules/ehentai/pages.py index 6712c7cf8694ac5405b20fbe67dbb64915bdbe65..4547eedc9d24ed2b6ce866b783ba93f734610650 100644 --- a/modules/ehentai/pages.py +++ b/modules/ehentai/pages.py @@ -18,7 +18,7 @@ # along with weboob. If not, see . -from weboob.tools.browser import Page +from weboob.deprecated.browser import Page from weboob.tools.html import html2text from weboob.capabilities.image import BaseImage diff --git a/modules/europarl/browser.py b/modules/europarl/browser.py index 2718f98b2260cbaf13df907f4baa7950114049d8..1770384b7964e952fc1cb6c9d21ad8552507ed9f 100644 --- a/modules/europarl/browser.py +++ b/modules/europarl/browser.py @@ -19,8 +19,8 @@ # along with weboob. If not, see . -from weboob.tools.browser import Browser -from weboob.tools.browser.decorators import id2url +from weboob.deprecated.browser import Browser +from weboob.deprecated.browser.decorators import id2url #from .pages.index import IndexPage from .pages import VideoPage diff --git a/modules/europarl/pages.py b/modules/europarl/pages.py index 92de9a2f99b208ac5aa2bde3b9d6114ce19812be..664f25c365d5b8be89f02ac63723aa7212bda804 100644 --- a/modules/europarl/pages.py +++ b/modules/europarl/pages.py @@ -18,16 +18,16 @@ # You should have received a copy of the GNU Affero General Public License # along with weboob. If not, see . -from weboob.tools.mech import ClientForm +from weboob.deprecated.mech import ClientForm ControlNotFoundError = ClientForm.ControlNotFoundError -from weboob.tools.browser import Page +from weboob.deprecated.browser import Page import re import datetime from weboob.capabilities.base import NotAvailable -from weboob.tools.browser import BrokenPageError +from weboob.deprecated.browser import BrokenPageError from .video import EuroparlVideo diff --git a/modules/feedly/browser.py b/modules/feedly/browser.py index cf8e4969ae16d4d77c40b125060ed4fe6bd0465c..53b4e3f39d4a750dc08e266cd57aa968469fc6bc 100644 --- a/modules/feedly/browser.py +++ b/modules/feedly/browser.py @@ -19,7 +19,7 @@ from weboob.tools.json import json from weboob.capabilities.collection import Collection -from weboob.browser2 import LoginBrowser, URL, need_login +from weboob.browser import LoginBrowser, URL, need_login from .pages import EssentialsPage, TokenPage, ContentsPage, PreferencesPage diff --git a/modules/feedly/google.py b/modules/feedly/google.py index 1535546530f2d278110a9b53c0da5b14a42ac0db..46884bd80cdd9e96b811ceeca2641c318d39b550 100644 --- a/modules/feedly/google.py +++ b/modules/feedly/google.py @@ -19,8 +19,9 @@ from urlparse import urlparse, parse_qs -from weboob.browser2 import LoginBrowser, URL, HTMLPage -from weboob.core.exceptions import BrowserIncorrectPassword +from weboob.browser import LoginBrowser, URL +from weboob.browser.pages import HTMLPage +from weboob.exceptions import BrowserIncorrectPassword class GoogleLoginPage(HTMLPage): diff --git a/modules/feedly/pages.py b/modules/feedly/pages.py index 10ca4f288e8c3276a2108b51aa4d490411f4b939..6c0031f33b2bef6c97d95060ebbf4a8a35255ccd 100644 --- a/modules/feedly/pages.py +++ b/modules/feedly/pages.py @@ -21,11 +21,11 @@ from weboob.capabilities.messages import Message from weboob.capabilities.collection import Collection -from weboob.browser2.page import JsonPage, method -from weboob.browser2.elements import ListElement, ItemElement -from weboob.browser2.filters.standard import CleanText, Format -from weboob.browser2.filters.json import Dict -from weboob.browser2.filters.html import CleanHTML +from weboob.browser.pages import JsonPage +from weboob.browser.elements import ListElement, ItemElement, method +from weboob.browser.filters.standard import CleanText, Format +from weboob.browser.filters.json import Dict +from weboob.browser.filters.html import CleanHTML class DictElement(ListElement): diff --git a/modules/fortuneo/browser.py b/modules/fortuneo/browser.py index eff32095d299d21d5a457c4f1302e79ce51a49f9..d9cfbe67fe748789f545a11573d457bd1c2484a8 100644 --- a/modules/fortuneo/browser.py +++ b/modules/fortuneo/browser.py @@ -22,7 +22,7 @@ from datetime import date from dateutil.relativedelta import relativedelta -from weboob.tools.browser import Browser, BrowserIncorrectPassword +from weboob.deprecated.browser import Browser, BrowserIncorrectPassword from .pages.login import LoginPage from .pages.accounts_list import GlobalAccountsList, AccountsList, AccountHistoryPage diff --git a/modules/fortuneo/pages/accounts_list.py b/modules/fortuneo/pages/accounts_list.py index 5e007f4c602e965124f0838b20357de8d3c3242c..f294b2232a1284a5c902e549f437b17b19ea1079 100644 --- a/modules/fortuneo/pages/accounts_list.py +++ b/modules/fortuneo/pages/accounts_list.py @@ -24,7 +24,7 @@ from time import sleep from weboob.capabilities.bank import Account -from weboob.tools.browser import Page, BrowserIncorrectPassword +from weboob.deprecated.browser import Page, BrowserIncorrectPassword from weboob.capabilities import NotAvailable from weboob.tools.capabilities.bank.transactions import FrenchTransaction from weboob.tools.json import json diff --git a/modules/fortuneo/pages/login.py b/modules/fortuneo/pages/login.py index 88bf2405ce7665e0a34dfa5da80354ac42e84adc..26b9fb8fe86e7e2089e523be62762806243dd72e 100644 --- a/modules/fortuneo/pages/login.py +++ b/modules/fortuneo/pages/login.py @@ -20,7 +20,7 @@ #from logging import error -from weboob.tools.browser import Page, BrowserUnavailable +from weboob.deprecated.browser import Page, BrowserUnavailable class LoginPage(Page): diff --git a/modules/fourchan/browser.py b/modules/fourchan/browser.py index a9ae22474a1747892a9342d89252e6e1a17130c7..89bc1ec162cf7eaa986c0e49a30fabd67f5c422f 100644 --- a/modules/fourchan/browser.py +++ b/modules/fourchan/browser.py @@ -18,7 +18,7 @@ # along with weboob. If not, see . -from weboob.tools.browser import Browser +from weboob.deprecated.browser import Browser from .pages.board import BoardPage diff --git a/modules/fourchan/pages/board.py b/modules/fourchan/pages/board.py index 8f77b27b24418f18012de56748e7df1d64aad187..663a078c524cb0a0c16bdfdedb745e4004eddcf2 100644 --- a/modules/fourchan/pages/board.py +++ b/modules/fourchan/pages/board.py @@ -22,7 +22,7 @@ from datetime import datetime -from weboob.tools.browser import Page +from weboob.deprecated.browser import Page class Message(object): diff --git a/modules/francetelevisions/browser.py b/modules/francetelevisions/browser.py index 4ea6124b0c2fb00151ca66226d0b6d2a004fbeed..5ef4cff723c084d23b7d3186a0349dc65ead5810 100644 --- a/modules/francetelevisions/browser.py +++ b/modules/francetelevisions/browser.py @@ -18,7 +18,7 @@ # along with weboob. If not, see . -from weboob.browser2 import PagesBrowser, URL +from weboob.browser import PagesBrowser, URL from .pages import IndexPage, VideoPage __all__ = ['PluzzBrowser'] diff --git a/modules/francetelevisions/pages.py b/modules/francetelevisions/pages.py index e0921c7c1b8d7dd5d823a096ee158097813a9fed..ef9ac05e46d7fa57a384364c972d88b4d73f863f 100644 --- a/modules/francetelevisions/pages.py +++ b/modules/francetelevisions/pages.py @@ -22,11 +22,11 @@ from datetime import timedelta -from weboob.browser2.page import HTMLPage, method, JsonPage -from weboob.browser2.elements import ItemElement, ListElement -from weboob.browser2.filters.standard import Filter, CleanText, Regexp, Format, DateTime, Env, Duration -from weboob.browser2.filters.html import Link, Attr, XPath -from weboob.browser2.filters.json import Dict +from weboob.browser.pages import HTMLPage, JsonPage +from weboob.browser.elements import ItemElement, ListElement, method +from weboob.browser.filters.standard import Filter, CleanText, Regexp, Format, DateTime, Env, Duration +from weboob.browser.filters.html import Link, Attr, XPath +from weboob.browser.filters.json import Dict class DurationPluzz(Filter): diff --git a/modules/freemobile/browser.py b/modules/freemobile/browser.py index 5de18f3cd87878d43771064599c8b9b2bb7cfc3d..1e04a67d0cad7121e91fb50f4a1ee546e2560bf4 100644 --- a/modules/freemobile/browser.py +++ b/modules/freemobile/browser.py @@ -17,8 +17,8 @@ # You should have received a copy of the GNU Affero General Public License # along with weboob. If not, see . -from weboob.browser2 import LoginBrowser, URL, need_login -from weboob.core.exceptions import BrowserIncorrectPassword +from weboob.browser import LoginBrowser, URL, need_login +from weboob.exceptions import BrowserIncorrectPassword from .pages import HomePage, LoginPage, HistoryPage, DetailsPage __all__ = ['Freemobile'] diff --git a/modules/freemobile/pages/history.py b/modules/freemobile/pages/history.py index c6ea5f91d15e5c95d1908b104ab8fb906cd21fa6..0488f8c5e8f5e637bf69bf29c2239b3337dd5b2f 100644 --- a/modules/freemobile/pages/history.py +++ b/modules/freemobile/pages/history.py @@ -24,11 +24,11 @@ from datetime import datetime from decimal import Decimal -from weboob.browser2.page import HTMLPage, method, LoggedPage -from weboob.browser2.elements import ItemElement, ListElement -from weboob.browser2.filters.standard import Date, CleanText, Filter,\ +from weboob.browser.pages import HTMLPage, LoggedPage +from weboob.browser.elements import ItemElement, ListElement, method +from weboob.browser.filters.standard import Date, CleanText, Filter,\ CleanDecimal, Regexp, Field, DateTime, Format, Env -from weboob.browser2.filters.html import Attr +from weboob.browser.filters.html import Attr from weboob.capabilities.bill import Detail, Bill @@ -39,6 +39,8 @@ def filter(self, txt): class BadUTF8Page(HTMLPage): def __init__(self, browser, response, *args, **kwargs): + # XXX it is volontary the parent class of HTMLPage's constructor which + # is called, but that's ugly. super(HTMLPage, self).__init__(browser, response, *args, **kwargs) parser = html.HTMLParser(encoding='UTF-8') self.doc = html.parse(StringIO(response.content), parser) diff --git a/modules/freemobile/pages/homepage.py b/modules/freemobile/pages/homepage.py index 0cf37e71fe6f36ce4d3cddf6178b05b2450d3417..5efe0854ec44899c456835f7871c6207717ab3c8 100644 --- a/modules/freemobile/pages/homepage.py +++ b/modules/freemobile/pages/homepage.py @@ -19,10 +19,9 @@ from .history import BadUTF8Page from weboob.capabilities.bill import Subscription -from weboob.browser2.page import method -from weboob.browser2.elements import ListElement, ItemElement -from weboob.browser2.filters.standard import CleanText, Field, Format, Filter -from weboob.browser2.filters.html import Attr +from weboob.browser.elements import ListElement, ItemElement, method +from weboob.browser.filters.standard import CleanText, Field, Format, Filter +from weboob.browser.filters.html import Attr class GetID(Filter): diff --git a/modules/freemobile/pages/login.py b/modules/freemobile/pages/login.py index b8ac832571ab28503332af876ebb1afdc322976c..8aa04c6c07648a47a1d4a115e5ba7e6a29822f1e 100644 --- a/modules/freemobile/pages/login.py +++ b/modules/freemobile/pages/login.py @@ -22,7 +22,7 @@ from StringIO import StringIO from PIL import Image -from weboob.browser2.page import HTMLPage +from weboob.browser.pages import HTMLPage class FreeKeyboard(object): diff --git a/modules/ganassurances/browser.py b/modules/ganassurances/browser.py index 8251fc101bba898876518c062799103670f98b3a..e33af36cce1e3217e2c2a3ff21c241253929c767 100644 --- a/modules/ganassurances/browser.py +++ b/modules/ganassurances/browser.py @@ -18,7 +18,7 @@ # along with weboob. If not, see . -from weboob.tools.browser import Browser, BrowserIncorrectPassword +from weboob.deprecated.browser import Browser, BrowserIncorrectPassword from .pages import LoginPage, AccountsPage, TransactionsPage diff --git a/modules/ganassurances/pages.py b/modules/ganassurances/pages.py index 61311399e9bc54cd0f576c0357a4d80a8f565efd..160e3df29540f32c6a75b2fb8a550a948bdc189a 100644 --- a/modules/ganassurances/pages.py +++ b/modules/ganassurances/pages.py @@ -21,7 +21,7 @@ from decimal import Decimal import re -from weboob.tools.browser import Page +from weboob.deprecated.browser import Page from weboob.capabilities.bank import Account from weboob.tools.capabilities.bank.transactions import FrenchTransaction diff --git a/modules/gazelle/browser.py b/modules/gazelle/browser.py index d0247afa30f655b8e0df2bc17d3ee20a1da7bf2a..42044cdcca4eecd64afbfe3d91b3d36fbe58a6cc 100644 --- a/modules/gazelle/browser.py +++ b/modules/gazelle/browser.py @@ -18,7 +18,7 @@ # along with weboob. If not, see . -from weboob.tools.browser import Browser +from weboob.deprecated.browser import Browser from .pages.index import IndexPage, LoginPage from .pages.torrents import TorrentsPage diff --git a/modules/gazelle/pages/base.py b/modules/gazelle/pages/base.py index 804993b3addf4830d891b6676374c77f3d3ddb80..d210dec613e815293c8ce23b398e99bff96da2a8 100644 --- a/modules/gazelle/pages/base.py +++ b/modules/gazelle/pages/base.py @@ -18,7 +18,7 @@ # along with weboob. If not, see . -from weboob.tools.browser import BrowserUnavailable, Page as _BasePage +from weboob.deprecated.browser import BrowserUnavailable, Page as _BasePage class BasePage(_BasePage): diff --git a/modules/gazelle/pages/index.py b/modules/gazelle/pages/index.py index 11625754c32502a637be34967b47782332c29880..3d4aac623c59bc4500c2cce6e23377814a35b938 100644 --- a/modules/gazelle/pages/index.py +++ b/modules/gazelle/pages/index.py @@ -18,7 +18,7 @@ # along with weboob. If not, see . -from weboob.tools.browser import BrowserIncorrectPassword, BrowserBanned +from weboob.deprecated.browser import BrowserIncorrectPassword, BrowserBanned from .base import BasePage diff --git a/modules/gdcvault/browser.py b/modules/gdcvault/browser.py index 6b6c27838c748c54bd33c393f44933f74b85e699..73fd15a537b53f16fcfd6572b03ab0658bf0d029 100644 --- a/modules/gdcvault/browser.py +++ b/modules/gdcvault/browser.py @@ -20,9 +20,9 @@ import urllib -from weboob.tools.browser import Browser, BrowserIncorrectPassword, BrowserUnavailable,\ +from weboob.deprecated.browser import Browser, BrowserIncorrectPassword, BrowserUnavailable,\ BrowserBanned -from weboob.tools.browser.decorators import id2url +from weboob.deprecated.browser.decorators import id2url #from .pages.index import IndexPage from .pages import VideoPage, IndexPage, SearchPage diff --git a/modules/gdcvault/pages.py b/modules/gdcvault/pages.py index 6a33ee62a95d39984c01c5f570dbcd929de57ecf..d8ddac25ac8f369ea2f48770b8a8d6716d8be577 100644 --- a/modules/gdcvault/pages.py +++ b/modules/gdcvault/pages.py @@ -19,7 +19,7 @@ # along with weboob. If not, see . -from weboob.tools.browser import Page +from weboob.deprecated.browser import Page import urllib import re @@ -28,7 +28,7 @@ from weboob.capabilities.base import NotAvailable from weboob.capabilities.image import BaseImage -from weboob.tools.browser import BrokenPageError +from weboob.deprecated.browser import BrokenPageError #HACK from urllib2 import HTTPError diff --git a/modules/gdfsuez/browser.py b/modules/gdfsuez/browser.py index d771f9445fccdb8e8f9c8798901bdb95260b91e9..6a6d74adfe383af223286b6fa5dfc6be4cfe1c91 100644 --- a/modules/gdfsuez/browser.py +++ b/modules/gdfsuez/browser.py @@ -18,7 +18,7 @@ # along with weboob. If not, see . import StringIO -from weboob.tools.browser import Browser, BrowserIncorrectPassword +from weboob.deprecated.browser import Browser, BrowserIncorrectPassword from .pages import LoginPage, HomePage, AccountPage, TimeoutPage, HistoryPage, PdfPage __all__ = ['GdfSuez'] diff --git a/modules/gdfsuez/pages/history.py b/modules/gdfsuez/pages/history.py index 0b2bff9d27cab84d05ae1fd00e09bb04eba17b8c..fe3152510a64bda071837cf2980c3dee1ff0e0da 100644 --- a/modules/gdfsuez/pages/history.py +++ b/modules/gdfsuez/pages/history.py @@ -26,7 +26,7 @@ from datetime import date from decimal import Decimal -from weboob.tools.browser import Page +from weboob.deprecated.browser import Page from weboob.capabilities.base import NotAvailable from weboob.capabilities.bill import Detail, Bill diff --git a/modules/gdfsuez/pages/homepage.py b/modules/gdfsuez/pages/homepage.py index 0f42e17ec223fbdd05ec9f9110258f7ba25575ba..8164dbea15ed15b914257f2b11003437c9cd4b6e 100644 --- a/modules/gdfsuez/pages/homepage.py +++ b/modules/gdfsuez/pages/homepage.py @@ -19,7 +19,7 @@ from datetime import date -from weboob.tools.browser import Page +from weboob.deprecated.browser import Page from weboob.capabilities.bill import Subscription diff --git a/modules/geolocip/module.py b/modules/geolocip/module.py index 6835053899532b8225a20a9d36004f221659dc09..d529635c0f21d9170491cab1918acaf47bb2c6db 100644 --- a/modules/geolocip/module.py +++ b/modules/geolocip/module.py @@ -21,7 +21,7 @@ from weboob.capabilities.geolocip import CapGeolocIp, IpLocation from weboob.tools.backend import Module -from weboob.tools.browser import Browser, BrowserUnavailable +from weboob.deprecated.browser import Browser, BrowserUnavailable __all__ = ['GeolocIpModule'] diff --git a/modules/github/browser.py b/modules/github/browser.py index 679df2d0d49f75a5ff5739177ef76fbbb17cea22..cb8055d4a778781774ffd77c5a29960e8394b991 100644 --- a/modules/github/browser.py +++ b/modules/github/browser.py @@ -18,7 +18,7 @@ # along with weboob. If not, see . -from weboob.tools.browser import Browser +from weboob.deprecated.browser import Browser from weboob.tools.json import json as json_module from base64 import b64encode import datetime diff --git a/modules/googletranslate/browser.py b/modules/googletranslate/browser.py index 82102e606fb043b600169a98dea04dddf1ce9983..2d27552801b23ac031354ecf1706b0151caecb56 100644 --- a/modules/googletranslate/browser.py +++ b/modules/googletranslate/browser.py @@ -20,7 +20,7 @@ import urllib -from weboob.tools.browser import Browser +from weboob.deprecated.browser import Browser from .pages import TranslatePage diff --git a/modules/googletranslate/pages.py b/modules/googletranslate/pages.py index d850b4fb9a82d4b2e64c9700c68477bc0300ff8c..fe3530885ce23f003696336dc863ab04a716078b 100644 --- a/modules/googletranslate/pages.py +++ b/modules/googletranslate/pages.py @@ -18,7 +18,7 @@ # along with weboob. If not, see . -from weboob.tools.browser import Page +from weboob.deprecated.browser import Page class TranslatePage(Page): diff --git a/modules/grooveshark/browser.py b/modules/grooveshark/browser.py index 5eb6d31d7e3c896e8aca10186ae4c0251cc899de..3a796cd5ced09d32709879ea186897770415a3a1 100644 --- a/modules/grooveshark/browser.py +++ b/modules/grooveshark/browser.py @@ -17,7 +17,7 @@ # You should have received a copy of the GNU Affero General Public License # along with weboob. If not, see . -from weboob.tools.browser import Browser, BrowserIncorrectPassword +from weboob.deprecated.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 diff --git a/modules/groupamaes/browser.py b/modules/groupamaes/browser.py index 47992e87cdd15f5cc2b1f963468a341b348ea3fe..9efb780a0bee84a8e16e579efaf55dcfa5eae8a5 100644 --- a/modules/groupamaes/browser.py +++ b/modules/groupamaes/browser.py @@ -18,8 +18,8 @@ # along with weboob. If not, see . -from weboob.browser2 import LoginBrowser, URL, need_login -from weboob.core.exceptions import BrowserIncorrectPassword +from weboob.browser import LoginBrowser, URL, need_login +from weboob.exceptions import BrowserIncorrectPassword from .pages import LoginPage, LoginErrorPage, AvoirPage, OperationsTraiteesPage, OperationsFuturesPage diff --git a/modules/groupamaes/pages.py b/modules/groupamaes/pages.py index f6757bdef0c05bedaa088e4db1e4984652264c42..537aa63d54bfe98575426f51962c92c5432b388d 100644 --- a/modules/groupamaes/pages.py +++ b/modules/groupamaes/pages.py @@ -18,9 +18,9 @@ # along with weboob. If not, see . -from weboob.browser2.page import HTMLPage, method, LoggedPage -from weboob.browser2.elements import TableElement, ItemElement -from weboob.browser2.filters.standard import CleanText, CleanDecimal, TableCell, Date +from weboob.browser.pages import HTMLPage, LoggedPage +from weboob.browser.elements import TableElement, ItemElement, method +from weboob.browser.filters.standard import CleanText, CleanDecimal, TableCell, Date from weboob.capabilities.bank import Account, Transaction from weboob.tools.date import LinearDateGuesser diff --git a/modules/guerrillamail/browser.py b/modules/guerrillamail/browser.py index 49eaef824da1e7d0fb4dd4d90cf306c2a8a7ce78..e07c40817688ecbd430bc3d9b4ef3be9a9b5e7ae 100644 --- a/modules/guerrillamail/browser.py +++ b/modules/guerrillamail/browser.py @@ -18,9 +18,9 @@ # along with weboob. If not, see . -from weboob.tools.browser import Browser +from weboob.deprecated.browser import Browser from weboob.tools.date import datetime -from weboob.tools.parsers.jsonparser import json +from weboob.deprecated.browser.parsers.jsonparser import json from urllib import urlencode #from .pages import Page1, Page2 diff --git a/modules/hds/browser.py b/modules/hds/browser.py index 2c29e21e507335af689d08ce647af260b0083c22..2bc406c1abcb2e3ae896701db602f2741d9ac594 100644 --- a/modules/hds/browser.py +++ b/modules/hds/browser.py @@ -18,7 +18,7 @@ # along with weboob. If not, see . -from weboob.tools.browser import Browser +from weboob.deprecated.browser import Browser from .pages import ValidationPage, HomePage, HistoryPage, StoryPage, AuthorPage diff --git a/modules/hds/pages.py b/modules/hds/pages.py index 63f80455ca9f667b188b7a8445d29b9e7f7cc8bb..5a12538a81e0fcf87617c841bc6b4fe7aaf9a418 100644 --- a/modules/hds/pages.py +++ b/modules/hds/pages.py @@ -21,7 +21,7 @@ import datetime import re -from weboob.tools.browser import Page +from weboob.deprecated.browser import Page class ValidationPage(Page): diff --git a/modules/hellobank/browser.py b/modules/hellobank/browser.py index a02028590d90b7f39c50efd1eb4c8eb5cfeb8bbe..e1aa66f6881164b887afc46078bf5ecfa59ca244 100644 --- a/modules/hellobank/browser.py +++ b/modules/hellobank/browser.py @@ -22,7 +22,7 @@ import mechanize from datetime import datetime -from weboob.tools.browser import Browser, BrowserIncorrectPassword, BrowserPasswordExpired +from weboob.deprecated.browser import Browser, BrowserIncorrectPassword, BrowserPasswordExpired from weboob.capabilities.bank import TransferError, Transfer from .perso.accounts_list import AccountsList, AccountPrelevement diff --git a/modules/hellobank/perso/accounts_list.py b/modules/hellobank/perso/accounts_list.py index c567ffb08d8e1aa38844507719c01f725b664638..246478bdf9813b8594a7c261777943d9a24f4643 100644 --- a/modules/hellobank/perso/accounts_list.py +++ b/modules/hellobank/perso/accounts_list.py @@ -21,7 +21,7 @@ from decimal import Decimal from weboob.capabilities.bank import Account -from weboob.tools.browser import Page, BrowserPasswordExpired +from weboob.deprecated.browser import Page, BrowserPasswordExpired from weboob.tools.json import json diff --git a/modules/hellobank/perso/login.py b/modules/hellobank/perso/login.py index 9d35a8cd012bf4edde09b125dcb01fa4be631a6b..f721b54c0064aa9156881cf6ccd9799d1288fdad 100644 --- a/modules/hellobank/perso/login.py +++ b/modules/hellobank/perso/login.py @@ -22,7 +22,7 @@ import time import re -from weboob.tools.browser import Page, BrowserUnavailable +from weboob.deprecated.browser import Page, BrowserUnavailable from weboob.tools.captcha.virtkeyboard import VirtKeyboard, VirtKeyboardError diff --git a/modules/hellobank/perso/messages.py b/modules/hellobank/perso/messages.py index 39c6338cf479a332f6631b42fa3f7d3ce63f4a4e..f48ef1fb53c96e4ae1a0fa135e017cc3b3dae9fa 100644 --- a/modules/hellobank/perso/messages.py +++ b/modules/hellobank/perso/messages.py @@ -18,7 +18,7 @@ # along with weboob. If not, see . -from weboob.tools.browser import Page, BrokenPageError +from weboob.deprecated.browser import Page, BrokenPageError from weboob.capabilities.messages import Message, Thread from weboob.capabilities.base import NotLoaded from weboob.tools.capabilities.messages.genericArticle import try_drop_tree diff --git a/modules/hellobank/perso/transactions.py b/modules/hellobank/perso/transactions.py index 4086e148fba219d99b54d61b68dd8b5f23656ec9..32e01b063770862b9f2e1b7ccf85cf7aca5821f5 100644 --- a/modules/hellobank/perso/transactions.py +++ b/modules/hellobank/perso/transactions.py @@ -21,7 +21,7 @@ import re -from weboob.tools.browser import Page +from weboob.deprecated.browser import Page from weboob.tools.capabilities.bank.transactions import FrenchTransaction diff --git a/modules/hellobank/perso/transfer.py b/modules/hellobank/perso/transfer.py index 26096846708c0e2948b9a4b4b2636a5428cbf899..a033ee82310b4c354853bebe9d79d97cbcc7dd49 100644 --- a/modules/hellobank/perso/transfer.py +++ b/modules/hellobank/perso/transfer.py @@ -21,7 +21,7 @@ import re -from weboob.tools.browser import Page, BrowserPasswordExpired +from weboob.deprecated.browser import Page, BrowserPasswordExpired from weboob.tools.ordereddict import OrderedDict from weboob.capabilities.bank import TransferError diff --git a/modules/hsbc/browser.py b/modules/hsbc/browser.py index db3e803d08c31973816fc7e8c6f7e87f93ed4bae..c92f753486c3483b9fbefc7e8855cf5eff1cec83 100644 --- a/modules/hsbc/browser.py +++ b/modules/hsbc/browser.py @@ -22,8 +22,8 @@ from datetime import timedelta from weboob.tools.date import LinearDateGuesser -from weboob.core.exceptions import BrowserIncorrectPassword -from weboob.browser2 import LoginBrowser, URL, need_login +from weboob.exceptions import BrowserIncorrectPassword +from weboob.browser import LoginBrowser, URL, need_login from .pages import AccountsPage, CBOperationPage, CPTOperationPage, LoginPage diff --git a/modules/hsbc/pages.py b/modules/hsbc/pages.py index 59197559d2497f7a4bd61a849e7aaa508bb22df8..2a82fb6716a4b670194c94f2297cb64cfb760c5e 100644 --- a/modules/hsbc/pages.py +++ b/modules/hsbc/pages.py @@ -24,11 +24,11 @@ from weboob.capabilities.bank import Account from weboob.tools.capabilities.bank.transactions import FrenchTransaction -from weboob.core.exceptions import BrowserIncorrectPassword -from weboob.browser2.elements import ListElement, ItemElement, SkipItem -from weboob.browser2.page import HTMLPage, method, LoggedPage, pagination -from weboob.browser2.filters.standard import Filter, Env, CleanText, CleanDecimal, Field, DateGuesser, TableCell -from weboob.browser2.filters.html import Link +from weboob.exceptions import BrowserIncorrectPassword +from weboob.browser.elements import ListElement, ItemElement, SkipItem, method +from weboob.browser.pages import HTMLPage, LoggedPage, pagination +from weboob.browser.filters.standard import Filter, Env, CleanText, CleanDecimal, Field, DateGuesser, TableCell +from weboob.browser.filters.html import Link class Transaction(FrenchTransaction): diff --git a/modules/hybride/browser.py b/modules/hybride/browser.py index fa86316a8623a084f5ba46982d5826b6f1bbbc92..d16c0e86cf125b8a0a85e15c1334bee3d2f1b355 100644 --- a/modules/hybride/browser.py +++ b/modules/hybride/browser.py @@ -19,7 +19,8 @@ from .pages import ProgramPage, EventPage -from weboob.browser2 import PagesBrowser, URL, Firefox +from weboob.browser import PagesBrowser, URL +from weboob.browser.profiles import Firefox __all__ = ['HybrideBrowser'] diff --git a/modules/hybride/pages.py b/modules/hybride/pages.py index a290992bb14dc9cd711d0d114acd007fd8292300..8d06c5e186d828746dd9e99687582d5691db79c8 100644 --- a/modules/hybride/pages.py +++ b/modules/hybride/pages.py @@ -23,10 +23,10 @@ import weboob.tools.date as date_util import re -from weboob.browser2.page import HTMLPage, method -from weboob.browser2.elements import ItemElement, SkipItem, ListElement -from weboob.browser2.filters.standard import Filter, CleanText, Env -from weboob.browser2.filters.html import Link +from weboob.browser.pages import HTMLPage +from weboob.browser.elements import ItemElement, SkipItem, ListElement, method +from weboob.browser.filters.standard import Filter, CleanText, Env +from weboob.browser.filters.html import Link def format_date(date): @@ -41,7 +41,7 @@ def filter(self, text): class CombineDate(Filter): - def filter(sel, text): + def filter(self, text): return datetime.combine(format_date(text), time.max) diff --git a/modules/imdb/browser.py b/modules/imdb/browser.py index efb1a6333f54e08d4e0a81177f47f408390d1d4d..027f4987bbc1b1effb005aa97556c4f3281d166d 100644 --- a/modules/imdb/browser.py +++ b/modules/imdb/browser.py @@ -20,7 +20,7 @@ import re from HTMLParser import HTMLParser -from weboob.tools.browser import Browser, BrowserHTTPNotFound +from weboob.deprecated.browser import Browser, BrowserHTTPNotFound from weboob.capabilities.base import NotAvailable, NotLoaded from weboob.capabilities.cinema import Movie, Person from weboob.tools.json import json diff --git a/modules/imdb/pages.py b/modules/imdb/pages.py index a3e1755b9154430cc098143518c81f021e8a30ca..6a60f03df4fed93edb25191aa6fb32a98c9d94e3 100644 --- a/modules/imdb/pages.py +++ b/modules/imdb/pages.py @@ -20,7 +20,7 @@ from weboob.capabilities.cinema import Person, Movie from weboob.capabilities.base import NotAvailable, NotLoaded -from weboob.tools.browser import Page +from weboob.deprecated.browser import Page from weboob.tools.html import html2text from datetime import datetime import re diff --git a/modules/imgur/module.py b/modules/imgur/module.py index 53493a00978ed4fed890f4bc28589d26e70dae4d..07712532cd82ea0749881b9688153dae2e8cb90d 100644 --- a/modules/imgur/module.py +++ b/modules/imgur/module.py @@ -22,7 +22,7 @@ from weboob.capabilities.paste import CapPaste, BasePaste from weboob.tools.capabilities.paste import image_mime from weboob.capabilities.base import StringField -from weboob.tools.browser import StandardBrowser +from weboob.deprecated.browser import StandardBrowser from urllib import urlencode import re diff --git a/modules/ina/browser.py b/modules/ina/browser.py index 04e6c324aee5757c661e596f652eff4a3a9ab678..30755f7e3a1aea0eb2bfecc0bc2924b49f4180fd 100644 --- a/modules/ina/browser.py +++ b/modules/ina/browser.py @@ -18,8 +18,8 @@ # along with weboob. If not, see . -from weboob.tools.browser import Browser -from weboob.tools.browser.decorators import id2url +from weboob.deprecated.browser import Browser +from weboob.deprecated.browser.decorators import id2url from .pages.video import VideoPage from .pages.search import SearchPage diff --git a/modules/ina/pages/search.py b/modules/ina/pages/search.py index f210a5499a47f339ac182ff9e51995544e71901c..834cc58cdd90b2b493d875bdcbb3bb8cd7475e3e 100644 --- a/modules/ina/pages/search.py +++ b/modules/ina/pages/search.py @@ -21,7 +21,7 @@ import datetime import re -from weboob.tools.browser import Page, BrokenPageError +from weboob.deprecated.browser import Page, BrokenPageError from weboob.capabilities.image import BaseImage from ..video import InaVideo diff --git a/modules/ina/pages/video.py b/modules/ina/pages/video.py index 5d7f8be187edd1bff60ad4d07f3cbff09e320694..15572d1d02c27be40974849e230b87cd993e611b 100644 --- a/modules/ina/pages/video.py +++ b/modules/ina/pages/video.py @@ -23,7 +23,7 @@ from weboob.capabilities import NotAvailable from weboob.capabilities.image import BaseImage -from weboob.tools.browser import Page +from weboob.deprecated.browser import Page from ..video import InaVideo diff --git a/modules/indeed/browser.py b/modules/indeed/browser.py index 7934a2af6107d78f85d3cda972548f0b15ea5ae7..fa9522cce40719602b2eb51654c9a51b8a86f3e3 100644 --- a/modules/indeed/browser.py +++ b/modules/indeed/browser.py @@ -17,7 +17,7 @@ # You should have received a copy of the GNU Affero General Public License # along with weboob. If not, see . -from weboob.browser2 import PagesBrowser, URL +from weboob.browser import PagesBrowser, URL from .pages import SearchPage, AdvertPage diff --git a/modules/indeed/pages.py b/modules/indeed/pages.py index b5e7c1b7f97d288f0bbb2f7e9a5434dbefa4fa91..c96adc8cce3bd3c1ba2a50e9956d224e9132467f 100644 --- a/modules/indeed/pages.py +++ b/modules/indeed/pages.py @@ -19,10 +19,10 @@ from datetime import timedelta, datetime import re -from weboob.browser2.page import HTMLPage, method, pagination -from weboob.browser2.elements import ListElement, ItemElement -from weboob.browser2.filters.standard import Filter, CleanText, Regexp, Format, Env -from weboob.browser2.filters.html import CleanHTML, Attr +from weboob.browser.pages import HTMLPage, pagination +from weboob.browser.elements import ListElement, ItemElement, method +from weboob.browser.filters.standard import Filter, CleanText, Regexp, Format, Env +from weboob.browser.filters.html import CleanHTML, Attr from weboob.capabilities.job import BaseJobAdvert diff --git a/modules/ing/browser.py b/modules/ing/browser.py index 29183c375f3c2390fac19a043efc40a15ed0e7bb..239b89a4072c1ce74fc88d04304009193ba792be 100644 --- a/modules/ing/browser.py +++ b/modules/ing/browser.py @@ -18,8 +18,8 @@ # along with weboob. If not, see . import hashlib -from weboob.browser2 import LoginBrowser, URL, need_login -from weboob.core.exceptions import BrowserIncorrectPassword, ParseError +from weboob.browser import LoginBrowser, URL, need_login +from weboob.exceptions import BrowserIncorrectPassword, ParseError from weboob.capabilities.bank import Account, TransferError from .pages import AccountsList, LoginPage, TitrePage, TitreHistory,\ diff --git a/modules/ing/pages/accounts_list.py b/modules/ing/pages/accounts_list.py index a1aca2d12d6a77434e2f0f2d5e4a192be0d186f2..c6693c55ff6ab06109c87898eb0acd6e4a23376d 100644 --- a/modules/ing/pages/accounts_list.py +++ b/modules/ing/pages/accounts_list.py @@ -24,10 +24,10 @@ from weboob.capabilities.bank import Account from weboob.capabilities.base import NotAvailable -from weboob.browser2.page import HTMLPage, LoggedPage, method -from weboob.browser2.elements import ListElement, ItemElement -from weboob.browser2.filters.standard import CleanText, CleanDecimal, Filter, Field, MultiFilter, Date, Lower -from weboob.browser2.filters.html import Attr +from weboob.browser.pages import HTMLPage, LoggedPage +from weboob.browser.elements import ListElement, ItemElement, method +from weboob.browser.filters.standard import CleanText, CleanDecimal, Filter, Field, MultiFilter, Date, Lower +from weboob.browser.filters.html import Attr from weboob.tools.capabilities.bank.transactions import FrenchTransaction diff --git a/modules/ing/pages/bills.py b/modules/ing/pages/bills.py index 26350dea181c4747f371e02c016fe127c236c3da..2d60dd0441ee6a6f1dc14df4dcca3b87a024b2b7 100644 --- a/modules/ing/pages/bills.py +++ b/modules/ing/pages/bills.py @@ -18,11 +18,10 @@ # along with weboob. If not, see . from weboob.capabilities.bill import Bill, Subscription -from weboob.browser2 import HTMLPage, LoggedPage -from weboob.browser2.filters.standard import Filter, CleanText, Format, Field, Env -from weboob.browser2.filters.html import Attr -from weboob.browser2.page import method, pagination -from weboob.browser2.elements import ListElement, ItemElement +from weboob.browser.pages import HTMLPage, LoggedPage, pagination +from weboob.browser.filters.standard import Filter, CleanText, Format, Field, Env +from weboob.browser.filters.html import Attr +from weboob.browser.elements import ListElement, ItemElement, method class FormId(Filter): diff --git a/modules/ing/pages/login.py b/modules/ing/pages/login.py index efb89a184c88954425f1ce71e6dc4e6af8872cc3..6c0462015a307cb24a08b5fc7e129c2677a9968a 100644 --- a/modules/ing/pages/login.py +++ b/modules/ing/pages/login.py @@ -19,9 +19,9 @@ from StringIO import StringIO -from weboob.core.exceptions import BrowserIncorrectPassword +from weboob.exceptions import BrowserIncorrectPassword from weboob.tools.captcha.virtkeyboard import VirtKeyboard -from weboob.browser2.page import HTMLPage +from weboob.browser.pages import HTMLPage class INGVirtKeyboard(VirtKeyboard): diff --git a/modules/ing/pages/titre.py b/modules/ing/pages/titre.py index 8d547790574287a85ad0ad00ea9f1907df061f5f..c91baebcc16c82fd6904f9999389d9a486411a89 100644 --- a/modules/ing/pages/titre.py +++ b/modules/ing/pages/titre.py @@ -21,9 +21,9 @@ from decimal import Decimal from weboob.capabilities.bank import Investment -from weboob.browser2.page import RawPage, HTMLPage, method, LoggedPage -from weboob.browser2.elements import ListElement, ItemElement -from weboob.browser2.filters.standard import CleanDecimal, CleanText, Date +from weboob.browser.pages import RawPage, HTMLPage, LoggedPage +from weboob.browser.elements import ListElement, ItemElement, method +from weboob.browser.filters.standard import CleanDecimal, CleanText, Date from weboob.tools.capabilities.bank.transactions import FrenchTransaction diff --git a/modules/ing/pages/transfer.py b/modules/ing/pages/transfer.py index 6b3f90248975ce953a36a2d75ccdf9f5a76a516f..6412c8b651c07d785ac708d440d93f61c7f7ce3b 100644 --- a/modules/ing/pages/transfer.py +++ b/modules/ing/pages/transfer.py @@ -18,10 +18,10 @@ # along with weboob. If not, see . from weboob.capabilities.bank import Recipient, AccountNotFound, Transfer -from weboob.browser2.page import HTMLPage, LoggedPage, method -from weboob.browser2.elements import ListElement, ItemElement -from weboob.browser2.filters.standard import CleanText, CleanDecimal, Format -from weboob.browser2.filters.html import Attr +from weboob.browser.pages import HTMLPage, LoggedPage +from weboob.browser.elements import ListElement, ItemElement, method +from weboob.browser.filters.standard import CleanText, CleanDecimal, Format +from weboob.browser.filters.html import Attr from .login import INGVirtKeyboard diff --git a/modules/inrocks/browser.py b/modules/inrocks/browser.py index d59f55048cb028eb7279f1c05ddd7d8db62c183b..d277b014d298021707db26a20d8b237abbb8cb0b 100644 --- a/modules/inrocks/browser.py +++ b/modules/inrocks/browser.py @@ -20,7 +20,7 @@ from .pages.article import ArticlePage from .pages.inrockstv import InrocksTvPage -from weboob.tools.browser import Browser +from weboob.deprecated.browser import Browser class NewspaperInrocksBrowser(Browser): diff --git a/modules/inrocks/pages/article.py b/modules/inrocks/pages/article.py index 5c9dab31910fc773cc3c3281d005e7de1af1ee7b..83491a94ed8f5c45e38b46e4911bb9cf32bf6946 100644 --- a/modules/inrocks/pages/article.py +++ b/modules/inrocks/pages/article.py @@ -18,7 +18,7 @@ # You should have received a copy of the GNU Affero General Public License # along with weboob. If not, see . -from weboob.tools.browser import BrokenPageError +from weboob.deprecated.browser import BrokenPageError from weboob.tools.capabilities.messages.genericArticle import GenericNewsPage, try_remove, \ try_remove_from_selector_list, \ drop_comments, NoneMainDiv diff --git a/modules/ipinfodb/module.py b/modules/ipinfodb/module.py index 0d659a169a9ccb2178bb08432ff3748f85c61776..9e95cfad9282d20c4b2ded0dbdbc7a4c72a58656 100644 --- a/modules/ipinfodb/module.py +++ b/modules/ipinfodb/module.py @@ -21,7 +21,7 @@ from weboob.capabilities.geolocip import CapGeolocIp, IpLocation from weboob.tools.backend import Module -from weboob.tools.browser import StandardBrowser +from weboob.deprecated.browser import StandardBrowser __all__ = ['IpinfodbModule'] diff --git a/modules/izneo/module.py b/modules/izneo/module.py index 9873f682175ccc00dea20f62809a40a5c4131eb2..73cff39eaea7a2a6a24f3ea55176e14ea18e4b8f 100644 --- a/modules/izneo/module.py +++ b/modules/izneo/module.py @@ -24,7 +24,7 @@ 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 Browser, Page +from weboob.deprecated.browser import Browser, Page __all__ = ['IzneoModule'] diff --git a/modules/jacquieetmichel/browser.py b/modules/jacquieetmichel/browser.py index 1d94b2eb32a42a376d27a9a0066e9d312194248b..0f4feadb8ccc24159b161f01d721ae2c0cf3b061 100644 --- a/modules/jacquieetmichel/browser.py +++ b/modules/jacquieetmichel/browser.py @@ -19,8 +19,8 @@ import urllib -from weboob.tools.browser import Browser -from weboob.tools.browser.decorators import id2url +from weboob.deprecated.browser import Browser +from weboob.deprecated.browser.decorators import id2url from .video import JacquieEtMichelVideo from .pages import VideoPage, ResultsPage diff --git a/modules/jacquieetmichel/pages.py b/modules/jacquieetmichel/pages.py index e26f6499c77d21175327bacf3576dd4e5110a20e..2163cd278038cce22d97071912c5b1ab2c1d9b65 100644 --- a/modules/jacquieetmichel/pages.py +++ b/modules/jacquieetmichel/pages.py @@ -22,7 +22,7 @@ from weboob.capabilities.base import NotAvailable from weboob.capabilities.image import BaseImage -from weboob.tools.browser import Page, BrokenPageError +from weboob.deprecated.browser import Page, BrokenPageError from weboob.tools.misc import to_unicode from .video import JacquieEtMichelVideo diff --git a/modules/jcvelaux/browser.py b/modules/jcvelaux/browser.py index aad77462c74d535bb0ece15d2b098168753d40b1..ec11bb82b4df96614dd51486d603b9c8d7057721 100644 --- a/modules/jcvelaux/browser.py +++ b/modules/jcvelaux/browser.py @@ -19,7 +19,7 @@ import datetime -from weboob.tools.browser import Browser +from weboob.deprecated.browser import Browser __all__ = ['VelibBrowser'] diff --git a/modules/jvmalin/browser.py b/modules/jvmalin/browser.py index c47dc7914d374dfd8e93a16a9917b30afec35b3a..d01934f73fafce65b32985ac069ff8b33cf8359a 100644 --- a/modules/jvmalin/browser.py +++ b/modules/jvmalin/browser.py @@ -18,7 +18,7 @@ # along with weboob. If not, see . -from weboob.tools.browser import Browser +from weboob.deprecated.browser import Browser from .pages import RoadmapSearchPage, RoadmapResultsPage, RoadmapPage, RoadmapAmbiguity diff --git a/modules/jvmalin/pages.py b/modules/jvmalin/pages.py index b5a334dbc4ee4bb8da2a50c330e5bd4e0b411bed..640fb4f0f9ede9049633affbb2f2cdf28b447d73 100644 --- a/modules/jvmalin/pages.py +++ b/modules/jvmalin/pages.py @@ -5,8 +5,8 @@ from weboob.capabilities.travel import RoadmapError from weboob.tools.misc import to_unicode -from weboob.tools.mech import ClientForm -from weboob.tools.browser import Page +from weboob.deprecated.mech import ClientForm +from weboob.deprecated.browser import Page class RoadmapAmbiguity(RoadmapError): diff --git a/modules/kickass/browser.py b/modules/kickass/browser.py index 88688d3c8d54acd23dab67f670de1407bdc2068f..c7019839a1873b26321b31530ce72f375385af3e 100644 --- a/modules/kickass/browser.py +++ b/modules/kickass/browser.py @@ -18,7 +18,7 @@ # along with weboob. If not, see . -from weboob.tools.browser import Browser, BrowserHTTPNotFound +from weboob.deprecated.browser import Browser, BrowserHTTPNotFound from .pages import TorrentsPage, TorrentPage diff --git a/modules/kickass/pages.py b/modules/kickass/pages.py index dd08004a0847d81893aaf31f6c0ac58df0ff9af3..c1ab540d6dda25f0419e297f51f739738f88468b 100644 --- a/modules/kickass/pages.py +++ b/modules/kickass/pages.py @@ -22,7 +22,7 @@ from weboob.capabilities.torrent import Torrent from weboob.capabilities.base import NotAvailable, NotLoaded -from weboob.tools.browser import Page +from weboob.deprecated.browser import Page from weboob.tools.misc import get_bytes_size diff --git a/modules/lacentrale/browser.py b/modules/lacentrale/browser.py index bd442e39dc2844eb1543d4aa315b46a497df30eb..314167e6c31343556279fc6565f43daaaffc47a0 100644 --- a/modules/lacentrale/browser.py +++ b/modules/lacentrale/browser.py @@ -20,7 +20,7 @@ import re -from weboob.tools.browser import Browser +from weboob.deprecated.browser import Browser from .pages import MainPage, ListingAutoPage, AnnoncePage diff --git a/modules/lacentrale/pages.py b/modules/lacentrale/pages.py index bf05c2ca981bc860585c6dceb775091ad6a2b3cf..ccc61557c256e9314543c9c859e0a8e5d0717847 100644 --- a/modules/lacentrale/pages.py +++ b/modules/lacentrale/pages.py @@ -21,7 +21,7 @@ from decimal import Decimal import re -from weboob.tools.browser import Page +from weboob.deprecated.browser import Page from weboob.capabilities import NotAvailable, NotLoaded from weboob.capabilities.pricecomparison import Product, Price, Shop diff --git a/modules/lcl/browser.py b/modules/lcl/browser.py index f4765f1493e7e4887114ddea17da5726a2ac8cc2..9fb2d79d70295c658e0de0b7319ed3b882489754 100644 --- a/modules/lcl/browser.py +++ b/modules/lcl/browser.py @@ -21,7 +21,7 @@ from urlparse import urlsplit, parse_qsl from mechanize import Cookie -from weboob.tools.browser import Browser, BrowserIncorrectPassword +from weboob.deprecated.browser import Browser, BrowserIncorrectPassword from .pages import SkipPage, LoginPage, AccountsPage, AccountHistoryPage, \ CBListPage, CBHistoryPage, ContractsPage diff --git a/modules/lcl/enterprise/browser.py b/modules/lcl/enterprise/browser.py index df4790441d675a9a390324cdfe57986d31a90f34..a0e2e563c0eeae9e402273282a98c9e4c37dd949 100644 --- a/modules/lcl/enterprise/browser.py +++ b/modules/lcl/enterprise/browser.py @@ -19,7 +19,7 @@ from urllib import urlencode -from weboob.tools.browser import Browser, BrowserIncorrectPassword +from weboob.deprecated.browser import Browser, BrowserIncorrectPassword from .pages import HomePage, MessagesPage, LogoutPage, LogoutOkPage, \ AlreadyConnectedPage, ExpiredPage, MovementsPage, RootPage diff --git a/modules/lcl/enterprise/pages.py b/modules/lcl/enterprise/pages.py index ec29b8ffd3aa3cb3147647d7ea2a57802ea1d403..ac479a47f40c170dbac25d87d1e61435443d8e1e 100644 --- a/modules/lcl/enterprise/pages.py +++ b/modules/lcl/enterprise/pages.py @@ -20,7 +20,7 @@ from decimal import Decimal from weboob.capabilities.bank import Account -from weboob.tools.browser import Page +from weboob.deprecated.browser import Page from weboob.tools.capabilities.bank.transactions import FrenchTransaction from ..pages import Transaction diff --git a/modules/lcl/pages.py b/modules/lcl/pages.py index 5d4b551dae295a703a7f13ae550e8798e620a6e5..037b7102df94c87eaad031871ba76c08335dd258 100644 --- a/modules/lcl/pages.py +++ b/modules/lcl/pages.py @@ -26,7 +26,7 @@ from weboob.capabilities.bank import Account -from weboob.tools.browser import Page, BrowserUnavailable +from weboob.deprecated.browser import Page, BrowserUnavailable from weboob.tools.captcha.virtkeyboard import MappedVirtKeyboard, VirtKeyboardError from weboob.tools.capabilities.bank.transactions import FrenchTransaction diff --git a/modules/leboncoin/browser.py b/modules/leboncoin/browser.py index 7b47dc4e2dccac60d6f5aba4ce5d40339bc0681e..b63ead107f042be16ad2ac727b30854d99f35c72 100644 --- a/modules/leboncoin/browser.py +++ b/modules/leboncoin/browser.py @@ -17,7 +17,7 @@ # You should have received a copy of the GNU Affero General Public License # along with weboob. If not, see . -from weboob.browser2 import PagesBrowser, URL +from weboob.browser import PagesBrowser, URL from weboob.capabilities.housing import Query from .pages import CityListPage, HousingListPage, HousingPage diff --git a/modules/leboncoin/pages.py b/modules/leboncoin/pages.py index b23a1c6fd6b38d4cc8e6de9861356541604562e5..944f2b1fb84aa623ba7dffa6d7b5983dd78f2574 100644 --- a/modules/leboncoin/pages.py +++ b/modules/leboncoin/pages.py @@ -17,10 +17,10 @@ # You should have received a copy of the GNU Affero General Public License # along with weboob. If not, see . from decimal import Decimal -from weboob.browser2.page import HTMLPage, method, pagination -from weboob.browser2.elements import ItemElement, ListElement -from weboob.browser2.filters.standard import CleanText, Regexp, CleanDecimal, Env, DateTime -from weboob.browser2.filters.html import Attr, Link +from weboob.browser.pages import HTMLPage, pagination +from weboob.browser.elements import ItemElement, ListElement, method +from weboob.browser.filters.standard import CleanText, Regexp, CleanDecimal, Env, DateTime +from weboob.browser.filters.html import Attr, Link from weboob.capabilities.housing import City, Housing, HousingPhoto from datetime import date, timedelta from weboob.tools.date import DATE_TRANSLATE_FR, LinearDateGuesser diff --git a/modules/leclercmobile/browser.py b/modules/leclercmobile/browser.py index c0d9d0cfbefdfb20918dd4e72dd37a36fafa6615..e0091d71bd34fc7a639faf053b3403c18bc91b6d 100644 --- a/modules/leclercmobile/browser.py +++ b/modules/leclercmobile/browser.py @@ -20,7 +20,7 @@ import time import StringIO -from weboob.tools.browser import Browser, BrowserIncorrectPassword +from weboob.deprecated.browser import Browser, BrowserIncorrectPassword from .pages import HomePage, LoginPage, HistoryPage, PdfPage from weboob.capabilities.bill import Detail from weboob.capabilities.base import NotAvailable diff --git a/modules/leclercmobile/pages/history.py b/modules/leclercmobile/pages/history.py index b46c188544d39c5d54202756f672af60896d3d13..5e3f0d1d55389122d5039e4960d49d0c8b411a73 100644 --- a/modules/leclercmobile/pages/history.py +++ b/modules/leclercmobile/pages/history.py @@ -26,7 +26,7 @@ from datetime import datetime, date, time from decimal import Decimal -from weboob.tools.browser import Page +from weboob.deprecated.browser import Page from weboob.capabilities.bill import Detail, Bill diff --git a/modules/leclercmobile/pages/homepage.py b/modules/leclercmobile/pages/homepage.py index e5565821fd71507bba0242b2c43b849b0ca13e43..c3002a5ac28a10cc9be764e46a0a8a9ed874c579 100644 --- a/modules/leclercmobile/pages/homepage.py +++ b/modules/leclercmobile/pages/homepage.py @@ -18,7 +18,7 @@ # along with weboob. If not, see . from weboob.capabilities.bill import Subscription -from weboob.tools.browser import Page +from weboob.deprecated.browser import Page class HomePage(Page): diff --git a/modules/leclercmobile/pages/login.py b/modules/leclercmobile/pages/login.py index d44a4a95ee4b630b354477adfa61b11183626d81..90faa7d39180118458cd1a43a793fdeac126665a 100644 --- a/modules/leclercmobile/pages/login.py +++ b/modules/leclercmobile/pages/login.py @@ -18,8 +18,8 @@ # along with weboob. If not, see . import StringIO -from weboob.tools.browser import Page -from weboob.tools.mech import ClientForm +from weboob.deprecated.browser import Page +from weboob.deprecated.mech import ClientForm class LoginPage(Page): diff --git a/modules/lefigaro/browser.py b/modules/lefigaro/browser.py index 7b31c18343f8a495a519e881927797bbe24a9cc7..9ff146156e49727af6c1d229f6d74d3e1347b8da 100644 --- a/modules/lefigaro/browser.py +++ b/modules/lefigaro/browser.py @@ -20,7 +20,7 @@ from .pages.article import ArticlePage, ActuPage from .pages.flashactu import FlashActuPage -from weboob.tools.browser import Browser, Page +from weboob.deprecated.browser import Browser, Page class IndexPage(Page): diff --git a/modules/liberation/browser.py b/modules/liberation/browser.py index 99e284a4c8da5252d902a163635e0ca3a7d25896..cc473db8d912e320c0e86c3387de9f20406d2cff 100644 --- a/modules/liberation/browser.py +++ b/modules/liberation/browser.py @@ -18,7 +18,7 @@ # along with weboob. If not, see . from .pages.article import ArticlePage -from weboob.tools.browser import Browser +from weboob.deprecated.browser import Browser class NewspaperLibeBrowser(Browser): diff --git a/modules/lolix/browser.py b/modules/lolix/browser.py index e68ac0dc74cbb59e8a119cdf904361a042039f99..cf195e282034a45e26a32798b4d01836f90ecf1c 100644 --- a/modules/lolix/browser.py +++ b/modules/lolix/browser.py @@ -17,8 +17,8 @@ # You should have received a copy of the GNU Affero General Public License # along with weboob. If not, see . -from weboob.tools.browser.decorators import id2url -from weboob.tools.browser import Browser +from weboob.deprecated.browser.decorators import id2url +from weboob.deprecated.browser import Browser from .job import LolixJobAdvert from .pages import SearchPage, AdvertPage import urllib diff --git a/modules/lolix/pages.py b/modules/lolix/pages.py index 22d993d4a50aa6bb4e5a8182b22cad56747c5251..6d3442c2447407400552e432faa73c0bed8da558 100644 --- a/modules/lolix/pages.py +++ b/modules/lolix/pages.py @@ -18,7 +18,7 @@ # along with weboob. If not, see . -from weboob.tools.browser import Page +from weboob.deprecated.browser import Page import dateutil.parser import re diff --git a/modules/lutim/browser.py b/modules/lutim/browser.py index 07bcf3347d2dc5e688893fc5db9a9afd735900cc..90f119c1eb33cad65027186710cda1c0217d3384 100644 --- a/modules/lutim/browser.py +++ b/modules/lutim/browser.py @@ -18,7 +18,7 @@ # along with weboob. If not, see . -from weboob.tools.browser import Browser +from weboob.deprecated.browser import Browser from StringIO import StringIO import re diff --git a/modules/lutim/pages.py b/modules/lutim/pages.py index 2cf454ac8969349383a58700c535d5e424176b71..bb6d40704378d532496f737e08db1f42a40d4fbf 100644 --- a/modules/lutim/pages.py +++ b/modules/lutim/pages.py @@ -18,7 +18,7 @@ # along with weboob. If not, see . -from weboob.tools.browser import Page +from weboob.deprecated.browser import Page import re diff --git a/modules/mailinator/browser.py b/modules/mailinator/browser.py index e79ff440fb393629279a6b8d38dab2aeed85694e..e24985d5f4733aa63fd25d5ab52b4ebd6c1d3dc2 100644 --- a/modules/mailinator/browser.py +++ b/modules/mailinator/browser.py @@ -18,9 +18,9 @@ # along with weboob. If not, see . -from weboob.tools.browser import Browser, BrowserBanned +from weboob.deprecated.browser import Browser, BrowserBanned from weboob.tools.date import datetime -from weboob.tools.parsers.jsonparser import json +from weboob.deprecated.browser.parsers.jsonparser import json import lxml.html import time diff --git a/modules/mareeinfo/browser.py b/modules/mareeinfo/browser.py index a3ea820dab099c7c15f535eaf242b2401bb33812..49c754364643f6b9838909847e5efa5ee0d59688 100644 --- a/modules/mareeinfo/browser.py +++ b/modules/mareeinfo/browser.py @@ -18,7 +18,7 @@ # along with weboob. If not, see . -from weboob.browser2 import PagesBrowser, URL +from weboob.browser import PagesBrowser, URL from .pages import IndexPage diff --git a/modules/mareeinfo/pages.py b/modules/mareeinfo/pages.py index a4bb8e64df99e0c8f3e5d15ad2cb367f1def0ccf..f8c5a0e165e1db91a28e570cb80e3ba992853226 100644 --- a/modules/mareeinfo/pages.py +++ b/modules/mareeinfo/pages.py @@ -17,10 +17,10 @@ # You should have received a copy of the GNU Affero General Public License # along with weboob. If not, see . -from weboob.browser2.page import HTMLPage, method -from weboob.browser2.elements import ListElement, ItemElement -from weboob.browser2.filters.standard import CleanText, DateTime, CleanDecimal, Regexp -from weboob.browser2.filters.html import Link, XPath +from weboob.browser.pages import HTMLPage +from weboob.browser.elements import ListElement, ItemElement, method +from weboob.browser.filters.standard import CleanText, DateTime, CleanDecimal, Regexp +from weboob.browser.filters.html import Link, XPath from weboob.capabilities.gauge import Gauge, GaugeMeasure, GaugeSensor from datetime import timedelta import re diff --git a/modules/marmiton/browser.py b/modules/marmiton/browser.py index dcceb36e816f1effcfe0884997b705784004a2b2..10a1637aa0e107c856bd1448f637511290c08fbf 100644 --- a/modules/marmiton/browser.py +++ b/modules/marmiton/browser.py @@ -18,7 +18,7 @@ # along with weboob. If not, see . -from weboob.tools.browser import Browser, BrowserHTTPNotFound +from weboob.deprecated.browser import Browser, BrowserHTTPNotFound from .pages import RecipePage, ResultsPage diff --git a/modules/marmiton/pages.py b/modules/marmiton/pages.py index 9ef383fd52b36a1df016927073076a36219cc889..212770f6950a43eed47dbe7e195e9bdca74aa16a 100644 --- a/modules/marmiton/pages.py +++ b/modules/marmiton/pages.py @@ -20,7 +20,7 @@ from weboob.capabilities.recipe import Recipe, Comment from weboob.capabilities.base import NotAvailable, NotLoaded -from weboob.tools.browser import Page +from weboob.deprecated.browser import Page class ResultsPage(Page): diff --git a/modules/mediawiki/browser.py b/modules/mediawiki/browser.py index 66ec23f1f06dffb9ffea545dea22e2845d106ef8..fd2cca71a1026a8cc22252bcf8be40cb63db23b1 100644 --- a/modules/mediawiki/browser.py +++ b/modules/mediawiki/browser.py @@ -22,7 +22,7 @@ import datetime import re -from weboob.tools.browser import Browser, BrowserIncorrectPassword +from weboob.deprecated.browser import Browser, BrowserIncorrectPassword from weboob.tools.json import json as simplejson from weboob.capabilities.content import Revision diff --git a/modules/meteofrance/browser.py b/modules/meteofrance/browser.py index e6188f155928b5c7e7769cc2dc3aba499b17cae0..6cecc8395ff513000a44607fa549765d9360f249 100644 --- a/modules/meteofrance/browser.py +++ b/modules/meteofrance/browser.py @@ -20,7 +20,7 @@ import urllib -from weboob.tools.browser import Browser +from weboob.deprecated.browser import Browser from .pages.meteo import WeatherPage, SearchCitiesPage from weboob.capabilities.weather import CityNotFound diff --git a/modules/meteofrance/pages/meteo.py b/modules/meteofrance/pages/meteo.py index 4e9736a0f884023f131bb3644df184edde46aacc..50bcc1ecdb47732ea1a38c2bc41d9d34999d0770 100644 --- a/modules/meteofrance/pages/meteo.py +++ b/modules/meteofrance/pages/meteo.py @@ -19,7 +19,7 @@ # along with weboob. If not, see . -from weboob.tools.browser import Page +from weboob.deprecated.browser import Page from weboob.capabilities.weather import Forecast, Current, City import datetime diff --git a/modules/minutes20/browser.py b/modules/minutes20/browser.py index 650d86c1288083ad6fd9078c6ff16fd528b5298f..96760ddbe275fb92482f58f9d8b0034902be1585 100644 --- a/modules/minutes20/browser.py +++ b/modules/minutes20/browser.py @@ -20,7 +20,7 @@ from .pages.article import ArticlePage from .pages.simple import SimplePage -from weboob.tools.browser import Browser +from weboob.deprecated.browser import Browser from .tools import id2url diff --git a/modules/monster/browser.py b/modules/monster/browser.py index 0bd351a5e9e0ecf6155c2d2996e1ba3905345771..6fde3c3c8c1f57e26b9771291c974bb686831aa3 100644 --- a/modules/monster/browser.py +++ b/modules/monster/browser.py @@ -18,8 +18,8 @@ # along with weboob. If not, see . import urllib -from weboob.tools.browser.decorators import id2url -from weboob.tools.browser import Browser +from weboob.deprecated.browser.decorators import id2url +from weboob.deprecated.browser import Browser from .pages import SearchPage, AdvertPage from .job import MonsterJobAdvert diff --git a/modules/monster/pages.py b/modules/monster/pages.py index 77a2cfc2d90885b3aecba7b84bfaa4395fa433ca..8f904e089ac249a586a244a9c48c9af7ebd9c5db 100644 --- a/modules/monster/pages.py +++ b/modules/monster/pages.py @@ -18,7 +18,7 @@ # along with weboob. If not, see . -from weboob.tools.browser import Page +from weboob.deprecated.browser import Page from weboob.tools.html import html2text import re from datetime import datetime, time, timedelta diff --git a/modules/nectarine/browser.py b/modules/nectarine/browser.py index 29817bb6350ce893fd3793a9185631b7c1d7df20..a188c8197cb57101de7dfc5ef276353b175dcb2f 100644 --- a/modules/nectarine/browser.py +++ b/modules/nectarine/browser.py @@ -17,7 +17,7 @@ # You should have received a copy of the GNU Affero General Public License # along with weboob. If not, see . -from weboob.tools.browser import Browser +from weboob.deprecated.browser import Browser from .pages import LivePage, StreamsPage __all__ = ['NectarineBrowser'] diff --git a/modules/nectarine/pages.py b/modules/nectarine/pages.py index 1bf8ad5246923a5aac460acdc3bd866d8efbe618..4bd930536e841aa4f9082a58f904f0ae39ac4358 100644 --- a/modules/nectarine/pages.py +++ b/modules/nectarine/pages.py @@ -17,7 +17,7 @@ # You should have received a copy of the GNU Affero General Public License # along with weboob. If not, see . -from weboob.tools.browser import Page +from weboob.deprecated.browser import Page from weboob.capabilities.radio import Radio from weboob.capabilities.audiostream import BaseAudioStream from weboob.tools.capabilities.streaminfo import StreamInfo diff --git a/modules/nettokom/browser.py b/modules/nettokom/browser.py index aa6c876522e9af0f7c3015b5ec3e9b9b150a3d23..38e58042d78ab4747857ff3bad81d8fe89e53ab9 100644 --- a/modules/nettokom/browser.py +++ b/modules/nettokom/browser.py @@ -18,7 +18,7 @@ # along with weboob. If not, see . -from weboob.tools.browser import Browser, BrowserIncorrectPassword +from weboob.deprecated.browser import Browser, BrowserIncorrectPassword from .pages import HomePage, LoginPage, HistoryPage, DetailsPage, BillsPage __all__ = ['Nettokom'] diff --git a/modules/nettokom/pages/history.py b/modules/nettokom/pages/history.py index 1ded0b3658c31bda925f44f573e4d3f1c77a98ba..dc25b9f38680e9f87caced3dbb382613d57b7649 100644 --- a/modules/nettokom/pages/history.py +++ b/modules/nettokom/pages/history.py @@ -21,7 +21,7 @@ from datetime import datetime, date, time from decimal import Decimal -from weboob.tools.browser import Page +from weboob.deprecated.browser import Page from weboob.capabilities.bill import Detail diff --git a/modules/nettokom/pages/homepage.py b/modules/nettokom/pages/homepage.py index ef0cf930d3a32b00afa8d574b3355c901e277659..0851c73971f36b9416a4f4486deb2d5a624ae1b7 100644 --- a/modules/nettokom/pages/homepage.py +++ b/modules/nettokom/pages/homepage.py @@ -19,7 +19,7 @@ from weboob.capabilities.bill import Subscription from weboob.tools.capabilities.bank.transactions import FrenchTransaction -from weboob.tools.browser import Page +from weboob.deprecated.browser import Page from datetime import date from decimal import Decimal diff --git a/modules/nettokom/pages/login.py b/modules/nettokom/pages/login.py index c66b542a194fd4182a54df0df4e0a8aa28a3a215..f4a9218c099ec2cf7de536a4b919f7435db70bf5 100644 --- a/modules/nettokom/pages/login.py +++ b/modules/nettokom/pages/login.py @@ -18,7 +18,7 @@ # along with weboob. If not, see . -from weboob.tools.browser import Page +from weboob.deprecated.browser import Page class LoginPage(Page): diff --git a/modules/nihonnooto/browser.py b/modules/nihonnooto/browser.py index f67cb6ec63097d0b8c524b9598fb899f5f524c14..d4346c446e7e5bf47a9c335df86444bc0fb06093 100644 --- a/modules/nihonnooto/browser.py +++ b/modules/nihonnooto/browser.py @@ -17,7 +17,7 @@ # You should have received a copy of the GNU Affero General Public License # along with weboob. If not, see . -from weboob.tools.browser import Browser +from weboob.deprecated.browser import Browser from .pages import LivePage, ProgramPage __all__ = ['NihonNoOtoBrowser'] diff --git a/modules/nihonnooto/pages.py b/modules/nihonnooto/pages.py index 8e035ba3be09c96721c59b96c70029280e8e66e8..06b6e58c8c795e3579121501263e3cdc2f0d03cd 100644 --- a/modules/nihonnooto/pages.py +++ b/modules/nihonnooto/pages.py @@ -17,7 +17,7 @@ # You should have received a copy of the GNU Affero General Public License # along with weboob. If not, see . -from weboob.tools.browser import Page +from weboob.deprecated.browser import Page from weboob.capabilities.radio import Radio from weboob.capabilities.audiostream import BaseAudioStream from weboob.tools.capabilities.streaminfo import StreamInfo diff --git a/modules/nolifetv/browser.py b/modules/nolifetv/browser.py index 83d6ebc512bcdee01bc8661334ce1240793df38d..86022343f4c8a4d2986736bb4f6ce9e9a0d866a0 100644 --- a/modules/nolifetv/browser.py +++ b/modules/nolifetv/browser.py @@ -18,11 +18,11 @@ # along with weboob. If not, see . -from weboob.tools.browser import Browser, BrowserIncorrectPassword +from weboob.deprecated.browser import Browser, BrowserIncorrectPassword import urllib -from weboob.tools.browser.decorators import id2url +from weboob.deprecated.browser.decorators import id2url from .video import NolifeTVVideo from .pages import VideoPage, VideoListPage, FamilyPage, AboPage, LoginPage, HomePage diff --git a/modules/nolifetv/pages.py b/modules/nolifetv/pages.py index 6fa629a36d49ee456427231d7c9f92bc834c8ff3..ed0835eb37e996218019789c0ff3b0337797f90e 100644 --- a/modules/nolifetv/pages.py +++ b/modules/nolifetv/pages.py @@ -21,7 +21,7 @@ from weboob.capabilities.collection import Collection from weboob.capabilities.image import BaseImage -from weboob.tools.browser import Page +from weboob.deprecated.browser import Page import re from datetime import datetime, timedelta diff --git a/modules/nova/module.py b/modules/nova/module.py index a3100d7a188534c1acfdff2d8e35942796ba984f..a58e9d3004dd03bde50b20ceb0982d4376d9ce7b 100644 --- a/modules/nova/module.py +++ b/modules/nova/module.py @@ -25,8 +25,8 @@ from weboob.tools.capabilities.streaminfo import StreamInfo from weboob.capabilities.collection import CapCollection from weboob.tools.backend import Module -from weboob.tools.browser import StandardBrowser -from weboob.tools.parsers import get_parser +from weboob.deprecated.browser import StandardBrowser +from weboob.deprecated.browser.parsers import get_parser __all__ = ['NovaModule'] diff --git a/modules/okc/browser.py b/modules/okc/browser.py index be5e8043d93f77e021dd2b2a0f74eb7842887f18..5deb768f0d56d02084e4847db27cd745dbfcdc5a 100644 --- a/modules/okc/browser.py +++ b/modules/okc/browser.py @@ -19,7 +19,7 @@ import urllib -from weboob.tools.browser import Browser, Page +from weboob.deprecated.browser import Browser, Page from weboob.tools.ordereddict import OrderedDict from .pages import LoginPage, ThreadPage, MessagesPage, PostMessagePage, ProfilePage, PhotosPage, VisitsPage, QuickMatchPage, SentPage diff --git a/modules/okc/optim/profiles_walker.py b/modules/okc/optim/profiles_walker.py index 77f62fcb47869b1530b05c12790abb27424f2b19..2610004d46fd69c571bb207f484a2be9770a3b36 100644 --- a/modules/okc/optim/profiles_walker.py +++ b/modules/okc/optim/profiles_walker.py @@ -19,7 +19,7 @@ from random import randint -from weboob.tools.browser import BrowserUnavailable +from weboob.deprecated.browser import BrowserUnavailable from weboob.capabilities.dating import Optimization from weboob.tools.log import getLogger from weboob.tools.value import Value, ValuesDict diff --git a/modules/okc/pages.py b/modules/okc/pages.py index c79e79c11685612c92485c4daa2e1da5aa197129..d38a43b2fcfb2b93ff4b24061718c2f10602f19a 100644 --- a/modules/okc/pages.py +++ b/modules/okc/pages.py @@ -20,7 +20,7 @@ import re from datetime import datetime -from weboob.tools.browser import Page +from weboob.deprecated.browser import Page from weboob.tools.ordereddict import OrderedDict from weboob.capabilities.contact import ProfileNode from weboob.tools.html import html2text diff --git a/modules/oney/browser.py b/modules/oney/browser.py index 088f8e3620264fc4bf091ef55fd1bd30247b835a..c4571276c816783f0b78a5bb66e6e59915b4ba4f 100644 --- a/modules/oney/browser.py +++ b/modules/oney/browser.py @@ -19,8 +19,8 @@ from weboob.capabilities.bank import Account -from weboob.core.exceptions import BrowserIncorrectPassword -from weboob.browser2 import LoginBrowser, URL, need_login +from weboob.exceptions import BrowserIncorrectPassword +from weboob.browser import LoginBrowser, URL, need_login from .pages import LoginPage, IndexPage, OperationsPage diff --git a/modules/oney/pages.py b/modules/oney/pages.py index efb0f3ca43487954b98cdbe56e6337db2782edbc..0df4ec7474dd94b86e590291bb369fdf4b1094df 100644 --- a/modules/oney/pages.py +++ b/modules/oney/pages.py @@ -25,10 +25,10 @@ from weboob.tools.capabilities.bank.transactions import FrenchTransaction from weboob.tools.captcha.virtkeyboard import MappedVirtKeyboard, VirtKeyboardError -from weboob.browser2.page import HTMLPage, method, LoggedPage, pagination -from weboob.browser2.elements import ListElement, ItemElement -from weboob.browser2.filters.standard import Env, CleanDecimal -from weboob.core.exceptions import ParseError +from weboob.browser.pages import HTMLPage, LoggedPage, pagination +from weboob.browser.elements import ListElement, ItemElement, method +from weboob.browser.filters.standard import Env, CleanDecimal +from weboob.exceptions import ParseError class Transaction(FrenchTransaction): diff --git a/modules/opacwebaloes/browser.py b/modules/opacwebaloes/browser.py index a65b19bc8f7e310264b86b95947f548452fbcdda..6f944eaa78133eb60637399a18d6347159f05d75 100644 --- a/modules/opacwebaloes/browser.py +++ b/modules/opacwebaloes/browser.py @@ -18,7 +18,7 @@ # along with weboob. If not, see . -from weboob.tools.browser import Browser, BrowserIncorrectPassword +from weboob.deprecated.browser import Browser, BrowserIncorrectPassword from .pages import LoginPage, HomePage, RentedPage, HistoryPage, BookedPage diff --git a/modules/opacwebaloes/pages.py b/modules/opacwebaloes/pages.py index 8a66f8af524e6619c28fa33f0651d71093722f79..b52dad3cb788df08805e8627aca0a7b0815db305 100644 --- a/modules/opacwebaloes/pages.py +++ b/modules/opacwebaloes/pages.py @@ -19,8 +19,8 @@ from datetime import date from weboob.capabilities.library import Book -from weboob.tools.browser import Page, BrowserUnavailable -from weboob.tools.mech import ClientForm +from weboob.deprecated.browser import Page, BrowserUnavailable +from weboob.deprecated.mech import ClientForm class SkipPage(Page): diff --git a/modules/opensubtitles/browser.py b/modules/opensubtitles/browser.py index d82c4a456539a494056a378d3588155589995878..09ad8285897fbac5f4c74dbd2791de7324b35553 100644 --- a/modules/opensubtitles/browser.py +++ b/modules/opensubtitles/browser.py @@ -18,7 +18,7 @@ # along with weboob. If not, see . -from weboob.tools.browser import Browser, BrowserHTTPNotFound +from weboob.deprecated.browser import Browser, BrowserHTTPNotFound from weboob.applications.suboob.suboob import LANGUAGE_CONV from .pages import SubtitlesPage, SearchPage, SubtitlePage diff --git a/modules/opensubtitles/pages.py b/modules/opensubtitles/pages.py index e14c9eada43acb9288388203fc7659f5ab1c14a3..10da1b759aaae09365efa5a04057a206f7a954b8 100644 --- a/modules/opensubtitles/pages.py +++ b/modules/opensubtitles/pages.py @@ -21,7 +21,7 @@ from weboob.capabilities.subtitle import Subtitle from weboob.capabilities.base import NotAvailable, NotLoaded -from weboob.tools.browser import Page +from weboob.deprecated.browser import Page from weboob.applications.suboob.suboob import LANGUAGE_CONV diff --git a/modules/orange/browser.py b/modules/orange/browser.py index 579743a37b92fc7f285b257677bf2f77010f4c4e..6c09879a2176148f6e675455d014633faf1604a0 100644 --- a/modules/orange/browser.py +++ b/modules/orange/browser.py @@ -23,7 +23,7 @@ from .pages import LoginPage, ComposePage, ConfirmPage -from weboob.tools.browser import Browser, BrowserIncorrectPassword +from weboob.deprecated.browser import Browser, BrowserIncorrectPassword __all__ = ['OrangeBrowser'] diff --git a/modules/orange/pages/compose.py b/modules/orange/pages/compose.py index 01b5482379dfbbf084c1736c2b6791d5c05507c5..3ef2cb457a72ef2f426ead8d5bfe7bf00795b91d 100644 --- a/modules/orange/pages/compose.py +++ b/modules/orange/pages/compose.py @@ -20,7 +20,7 @@ import re from weboob.capabilities.messages import CantSendMessage -from weboob.tools.browser import Page +from weboob.deprecated.browser import Page class ConfirmPage(Page): diff --git a/modules/orange/pages/login.py b/modules/orange/pages/login.py index f433fc16799671fbc164940cea85729fa779db9d..bc15e38fc97995f5ce401bafdc3fda09c19c904d 100644 --- a/modules/orange/pages/login.py +++ b/modules/orange/pages/login.py @@ -17,7 +17,7 @@ # You should have received a copy of the GNU Affero General Public License # along with weboob. If not, see . -from weboob.tools.browser import Page +from weboob.deprecated.browser import Page import urllib diff --git a/modules/ouifm/module.py b/modules/ouifm/module.py index 1124dc777ee7437b5ffa39fb12f24cc0f2c73c35..4124da88a69299615afe610d104dd67de8a1ef2f 100644 --- a/modules/ouifm/module.py +++ b/modules/ouifm/module.py @@ -23,7 +23,7 @@ from weboob.tools.capabilities.streaminfo import StreamInfo from weboob.capabilities.collection import CapCollection from weboob.tools.backend import Module -from weboob.tools.browser import StandardBrowser +from weboob.deprecated.browser import StandardBrowser from weboob.tools.misc import to_unicode diff --git a/modules/ovs/browser.py b/modules/ovs/browser.py index 1e62ea1d834ace3a86d56622e0e0784f44cc4591..343d8d048f4f15f83cce59ec4d9ced7d603003a0 100644 --- a/modules/ovs/browser.py +++ b/modules/ovs/browser.py @@ -18,8 +18,8 @@ # along with weboob. If not, see . -from weboob.tools.browser import Browser, BrowserIncorrectPassword -from weboob.tools.parsers.iparser import IParser +from weboob.deprecated.browser import Browser, BrowserIncorrectPassword +from weboob.deprecated.browser.parsers.iparser import IParser import BeautifulSoup from .pages import PagePrivateThreadsList, PagePrivateThread, PageLogin, PageIndex, DummyPage, PageUserProfile, PageCityList diff --git a/modules/ovs/module.py b/modules/ovs/module.py index 5be89f74db29a6a509811f786b53f6c32ba9ccf1..e67950127b9490b06ad2b0f86416170eca3e6d39 100644 --- a/modules/ovs/module.py +++ b/modules/ovs/module.py @@ -18,7 +18,7 @@ # along with weboob. If not, see . from weboob.tools.backend import Module, BackendConfig -from weboob.tools.browser import BrowserForbidden +from weboob.deprecated.browser import BrowserForbidden from weboob.tools.value import Value, ValueBackendPassword from weboob.capabilities.messages import CapMessages, CapMessagesPost, Message from weboob.capabilities.contact import CapContact diff --git a/modules/ovs/pages.py b/modules/ovs/pages.py index b2292d526684f4635b26ae564cd620da55571b35..d1467b782bd382522ab4261602f14434630c4f0b 100644 --- a/modules/ovs/pages.py +++ b/modules/ovs/pages.py @@ -22,7 +22,7 @@ import re import urllib from urlparse import urlsplit -from weboob.tools.browser import Page +from weboob.deprecated.browser import Page from weboob.capabilities.messages import Message, Thread from weboob.capabilities.contact import Contact, ProfileNode from weboob.tools.date import parse_french_date diff --git a/modules/pap/browser.py b/modules/pap/browser.py index 21d7332e36e551c704f5b1e17109c218fe10626b..0816be731ea863218955a5056b30eaa80aee48d5 100644 --- a/modules/pap/browser.py +++ b/modules/pap/browser.py @@ -22,7 +22,7 @@ from weboob.tools.json import json -from weboob.tools.browser import Browser +from weboob.deprecated.browser import Browser from weboob.capabilities.housing import Query from .pages import SearchResultsPage, HousingPage diff --git a/modules/pap/pages.py b/modules/pap/pages.py index f185013f6bc241576fd9b7115438859bb724e9fa..30d744c248543de90736ad26f415a9140fde79af 100644 --- a/modules/pap/pages.py +++ b/modules/pap/pages.py @@ -22,7 +22,7 @@ from decimal import Decimal from dateutil.parser import parse as parse_date -from weboob.tools.browser import Page +from weboob.deprecated.browser import Page from weboob.capabilities.base import NotAvailable from weboob.capabilities.housing import Housing diff --git a/modules/pariskiwi/browser.py b/modules/pariskiwi/browser.py index 21b5f35fbf24d258c2ab876ccb41cbd07e796c97..a40c9af56a0ba32ae21c398d35f78c1e690606ee 100644 --- a/modules/pariskiwi/browser.py +++ b/modules/pariskiwi/browser.py @@ -18,7 +18,7 @@ # along with weboob. If not, see . -from weboob.tools.browser import Browser +from weboob.deprecated.browser import Browser from .pages import PageList, PageList2, PageEvent diff --git a/modules/pariskiwi/pages.py b/modules/pariskiwi/pages.py index 2b642c728ddf250b4a82e05bb998c8f9baf30c2e..7f962b9b146390c38d8873f18e4235ec118ed032 100644 --- a/modules/pariskiwi/pages.py +++ b/modules/pariskiwi/pages.py @@ -18,7 +18,7 @@ # along with weboob. If not, see . -from weboob.tools.browser import Page +from weboob.deprecated.browser import Page from datetime import datetime, time import json import lxml.html diff --git a/modules/parolesmania/browser.py b/modules/parolesmania/browser.py index 066bf707b64805ebc3ff3aec25b3709d689ec6f4..501ef702de4b677c2bd1825ec32e063d8f6b11bb 100644 --- a/modules/parolesmania/browser.py +++ b/modules/parolesmania/browser.py @@ -18,7 +18,7 @@ # along with weboob. If not, see . -from weboob.tools.browser import Browser, BrowserHTTPNotFound +from weboob.deprecated.browser import Browser, BrowserHTTPNotFound from .pages import SongResultsPage, SonglyricsPage, ArtistResultsPage, ArtistSongsPage diff --git a/modules/parolesmania/pages.py b/modules/parolesmania/pages.py index c3a25d0dfb71fb6228fdb74661186a340b6fcdce..385c87d1503c7dc28524eda0c46a2b6d8624abd4 100644 --- a/modules/parolesmania/pages.py +++ b/modules/parolesmania/pages.py @@ -20,7 +20,7 @@ from weboob.capabilities.lyrics import SongLyrics from weboob.capabilities.base import NotAvailable, NotLoaded -from weboob.tools.browser import Page +from weboob.deprecated.browser import Page class ArtistResultsPage(Page): diff --git a/modules/parolesmusique/browser.py b/modules/parolesmusique/browser.py index e8b237262c5560b82ee6bf2e340a98eca131e606..22b53cd73f938109f958a239a951708437cc9107 100644 --- a/modules/parolesmusique/browser.py +++ b/modules/parolesmusique/browser.py @@ -18,7 +18,7 @@ # along with weboob. If not, see . -from weboob.tools.browser import Browser, BrowserHTTPNotFound +from weboob.deprecated.browser import Browser, BrowserHTTPNotFound from .pages import SongResultsPage, SonglyricsPage, ArtistResultsPage, ArtistSongsPage, HomePage diff --git a/modules/parolesmusique/pages.py b/modules/parolesmusique/pages.py index 6e422fa0c8f474fb71c904c9292cd815b8a262a7..407c69e2ea965ada7478709e6dce5de0c002a851 100644 --- a/modules/parolesmusique/pages.py +++ b/modules/parolesmusique/pages.py @@ -20,7 +20,7 @@ from weboob.capabilities.lyrics import SongLyrics from weboob.capabilities.base import NotAvailable, NotLoaded -from weboob.tools.browser import Page +from weboob.deprecated.browser import Page class HomePage(Page): diff --git a/modules/parolesnet/browser.py b/modules/parolesnet/browser.py index a5db5e58b595e14d466d5e0e304152ad5ff7b6dd..405b1a0e45de3a999936937927f93b668b96dbc0 100644 --- a/modules/parolesnet/browser.py +++ b/modules/parolesnet/browser.py @@ -18,7 +18,7 @@ # along with weboob. If not, see . -from weboob.tools.browser import Browser, BrowserHTTPNotFound +from weboob.deprecated.browser import Browser, BrowserHTTPNotFound from .pages import ResultsPage, SonglyricsPage, ArtistSongsPage, HomePage diff --git a/modules/parolesnet/pages.py b/modules/parolesnet/pages.py index 6f33fd5f20508d4ddf725ba570e75eebbb55336d..717e0b33768ac7ee98417aa23cc4c61e271052e8 100644 --- a/modules/parolesnet/pages.py +++ b/modules/parolesnet/pages.py @@ -20,7 +20,7 @@ from weboob.capabilities.lyrics import SongLyrics from weboob.capabilities.base import NotAvailable, NotLoaded -from weboob.tools.browser import Page +from weboob.deprecated.browser import Page class HomePage(Page): diff --git a/modules/pastealacon/browser.py b/modules/pastealacon/browser.py index caf6a16a5d96cd73882c94d823845e4116e621f0..f489887d0f5508ecb7aff6bd4bcd14df5ed067a6 100644 --- a/modules/pastealacon/browser.py +++ b/modules/pastealacon/browser.py @@ -20,10 +20,12 @@ import re from weboob.capabilities.paste import BasePaste, PasteNotFound -from weboob.browser2.filters.standard import CleanText, DateTime, Env, RawText, Regexp -from weboob.browser2.page import HTMLPage, method, PagesBrowser, URL -from weboob.browser2.elements import ItemElement -from weboob.core.exceptions import BrowserHTTPNotFound +from weboob.browser.filters.standard import CleanText, DateTime, Env, RawText, Regexp +from weboob.browser.pages import HTMLPage +from weboob.browser.browsers import PagesBrowser +from weboob.browser.url import URL +from weboob.browser.elements import ItemElement, method +from weboob.exceptions import BrowserHTTPNotFound class Spam(Exception): diff --git a/modules/pastebin/browser.py b/modules/pastebin/browser.py index 5c79e1d2050c1df601e80c39e7224875ab7282cf..cdfafe9ef29598c3314372c4f7f3660733d554e1 100644 --- a/modules/pastebin/browser.py +++ b/modules/pastebin/browser.py @@ -21,12 +21,12 @@ import re from weboob.capabilities.paste import BasePaste, PasteNotFound -from weboob.browser2 import HTMLPage, LoginBrowser, need_login, URL -from weboob.browser2.elements import ItemElement -from weboob.browser2.filters.standard import Base, CleanText, DateTime, Env, Filter, FilterError, RawText -from weboob.browser2.filters.html import Attr -from weboob.browser2.page import method, RawPage -from weboob.core.exceptions import BrowserHTTPNotFound, BrowserIncorrectPassword, BrowserUnavailable +from weboob.browser import LoginBrowser, need_login, URL +from weboob.browser.pages import HTMLPage, RawPage +from weboob.browser.elements import ItemElement, method +from weboob.browser.filters.standard import Base, CleanText, DateTime, Env, Filter, FilterError, RawText +from weboob.browser.filters.html import Attr +from weboob.exceptions import BrowserHTTPNotFound, BrowserIncorrectPassword, BrowserUnavailable class PastebinPaste(BasePaste): diff --git a/modules/paypal/browser.py b/modules/paypal/browser.py index 333fff5a28b0c411e0ececffa3876135eb2ea0fb..f24f39bb3bd1d0f8ea05772fea971b119b6e0f62 100644 --- a/modules/paypal/browser.py +++ b/modules/paypal/browser.py @@ -18,7 +18,7 @@ # along with weboob. If not, see . -from weboob.tools.browser import Browser, BrowserIncorrectPassword +from weboob.deprecated.browser import Browser, BrowserIncorrectPassword from .pages import LoginPage, AccountPage, DownloadHistoryPage, LastDownloadHistoryPage, SubmitPage, HistoryParser, UselessPage, HistoryPage, CSVAlreadyAsked import datetime diff --git a/modules/paypal/pages.py b/modules/paypal/pages.py index f7432fe962ca22fc07a0e72e89bd8d9d3e4d2f92..6d06e5ff0b48303eb893bffc2db0d40afc045aa4 100644 --- a/modules/paypal/pages.py +++ b/modules/paypal/pages.py @@ -23,8 +23,8 @@ import dateutil.parser -from weboob.tools.browser import Page, BrokenPageError -from weboob.tools.parsers.csvparser import CsvParser +from weboob.deprecated.browser import Page, BrokenPageError +from weboob.deprecated.browser.parsers.csvparser import CsvParser from weboob.tools.misc import to_unicode from weboob.tools.date import parse_french_date from weboob.capabilities.bank import Account, Transaction diff --git a/modules/phpbb/browser.py b/modules/phpbb/browser.py index 9117d148a30dcc9abddfbc6b5b939e0f95160d7f..28eef4c7ea793e865944402bc911d63f1e03ca60 100644 --- a/modules/phpbb/browser.py +++ b/modules/phpbb/browser.py @@ -22,7 +22,7 @@ import urllib from urlparse import urlsplit -from weboob.tools.browser import Browser, BrowserIncorrectPassword +from weboob.deprecated.browser import Browser, BrowserIncorrectPassword from weboob.capabilities.messages import CantSendMessage from .pages.index import LoginPage diff --git a/modules/phpbb/pages/forum.py b/modules/phpbb/pages/forum.py index 9c406f258f4f4f7a94f5a54d6c7cbe3c1e56d7b1..b1bb1e7d859ed5c848af3a4350177baeb7cd57e3 100644 --- a/modules/phpbb/pages/forum.py +++ b/modules/phpbb/pages/forum.py @@ -21,7 +21,7 @@ from time import sleep from urlparse import urlsplit, parse_qs -from weboob.tools.browser import BrokenPageError +from weboob.deprecated.browser import BrokenPageError from .index import PhpBBPage from ..tools import parse_date diff --git a/modules/phpbb/pages/index.py b/modules/phpbb/pages/index.py index 8bd0c31e62602e92d46ee90be5148546db668577..e53bcd8e2942be84524a0d154468ada987290cb9 100644 --- a/modules/phpbb/pages/index.py +++ b/modules/phpbb/pages/index.py @@ -18,7 +18,7 @@ # along with weboob. If not, see . -from weboob.tools.browser import Page +from weboob.deprecated.browser import Page class PhpBBPage(Page): diff --git a/modules/piratebay/browser.py b/modules/piratebay/browser.py index 48e85ab28e775f3dcd8b085c6107344e534f3a19..95b6ea5b149dc3bf5592b2448d0cf45401e21c6a 100644 --- a/modules/piratebay/browser.py +++ b/modules/piratebay/browser.py @@ -21,7 +21,7 @@ from urlparse import urlsplit import urllib -from weboob.tools.browser import Browser, BrowserHTTPNotFound +from weboob.deprecated.browser import Browser, BrowserHTTPNotFound from .pages.index import IndexPage from .pages.torrents import TorrentsPage, TorrentPage diff --git a/modules/piratebay/pages/index.py b/modules/piratebay/pages/index.py index 0445f358083caccc45fc401bc56beafc60b237e4..688b7b586f3f14adc38a80ac836004fd629d2f88 100644 --- a/modules/piratebay/pages/index.py +++ b/modules/piratebay/pages/index.py @@ -18,7 +18,7 @@ # along with weboob. If not, see . -from weboob.tools.browser import Page +from weboob.deprecated.browser import Page class IndexPage(Page): diff --git a/modules/piratebay/pages/torrents.py b/modules/piratebay/pages/torrents.py index 8b782d51ee1410dbf97ef25677f53b01d4acfefa..df7b7c4dab8dc6f02023e112275f147f549b7e37 100644 --- a/modules/piratebay/pages/torrents.py +++ b/modules/piratebay/pages/torrents.py @@ -18,7 +18,7 @@ # along with weboob. If not, see . -from weboob.tools.browser import Page,BrokenPageError +from weboob.deprecated.browser import Page,BrokenPageError from weboob.capabilities.torrent import Torrent from weboob.capabilities.base import NotAvailable, NotLoaded diff --git a/modules/pixtoilelibre/browser.py b/modules/pixtoilelibre/browser.py index ef9d5c85a3e43a3c0e7f235ed96673ea3ccdee39..0ff263ad0d7c23a38404e5b9c40434a5f3a8cad2 100644 --- a/modules/pixtoilelibre/browser.py +++ b/modules/pixtoilelibre/browser.py @@ -18,7 +18,7 @@ # along with weboob. If not, see . -from weboob.tools.browser import Browser +from weboob.deprecated.browser import Browser from weboob.tools.capabilities.paste import image_mime from StringIO import StringIO diff --git a/modules/pixtoilelibre/pages.py b/modules/pixtoilelibre/pages.py index 66d1003d7e7c1222bb40c83f91e1670db5d5cc1a..6894cb881e27cbc20de485156c9310df54ba0beb 100644 --- a/modules/pixtoilelibre/pages.py +++ b/modules/pixtoilelibre/pages.py @@ -18,7 +18,7 @@ # along with weboob. If not, see . -from weboob.tools.browser import Page +from weboob.deprecated.browser import Page import re diff --git a/modules/podnapisi/browser.py b/modules/podnapisi/browser.py index 29eed57d8c6b3127b96da6141ccae71e2e0336d0..c4a5455c2a2264b9d815c5a0e746c637a684baba 100644 --- a/modules/podnapisi/browser.py +++ b/modules/podnapisi/browser.py @@ -18,7 +18,7 @@ # along with weboob. If not, see . -from weboob.tools.browser import Browser, BrowserHTTPNotFound +from weboob.deprecated.browser import Browser, BrowserHTTPNotFound from .pages import SearchPage, SubtitlePage, LANGUAGE_NUMBERS diff --git a/modules/podnapisi/pages.py b/modules/podnapisi/pages.py index ddf3a40561bb0996231462c50ef11545e6629b42..9715d05c1f778be977ea40fca0401433ec9da4bd 100644 --- a/modules/podnapisi/pages.py +++ b/modules/podnapisi/pages.py @@ -20,7 +20,7 @@ from weboob.capabilities.subtitle import Subtitle from weboob.capabilities.base import NotAvailable, NotLoaded -from weboob.tools.browser import Page +from weboob.deprecated.browser import Page LANGUAGE_NUMBERS = { diff --git a/modules/poivy/browser.py b/modules/poivy/browser.py index f817cf8e47b26d3767c17858ef4c194cad9cd098..ccd3abc924a870313854944dad196c435ffa1b49 100644 --- a/modules/poivy/browser.py +++ b/modules/poivy/browser.py @@ -17,8 +17,8 @@ # You should have received a copy of the GNU Affero General Public License # along with weboob. If not, see . -from weboob.browser2 import LoginBrowser, URL, need_login -from weboob.core.exceptions import BrowserIncorrectPassword +from weboob.browser import LoginBrowser, URL, need_login +from weboob.exceptions import BrowserIncorrectPassword from .pages import HomePage, LoginPage, HistoryPage, BillsPage, ErrorPage diff --git a/modules/poivy/pages.py b/modules/poivy/pages.py index abf22f535b67477d345f9e5da38827c7a33c726b..0a3aaf77e1e31e832a8a750fe1645aa427a13350 100644 --- a/modules/poivy/pages.py +++ b/modules/poivy/pages.py @@ -17,11 +17,11 @@ # You should have received a copy of the GNU Affero General Public License # along with weboob. If not, see . -from weboob.core.exceptions import BrowserBanned -from weboob.browser2.page import HTMLPage, LoggedPage, method, pagination -from weboob.browser2.elements import ListElement, ItemElement -from weboob.browser2.filters.standard import CleanText, CleanDecimal, Field, DateTime, Format -from weboob.browser2.filters.html import Attr, Link +from weboob.exceptions import BrowserBanned +from weboob.browser.pages import HTMLPage, LoggedPage, pagination +from weboob.browser.elements import ListElement, ItemElement, method +from weboob.browser.filters.standard import CleanText, CleanDecimal, Field, DateTime, Format +from weboob.browser.filters.html import Attr, Link from weboob.capabilities.bill import Subscription, Detail diff --git a/modules/popolemploi/browser.py b/modules/popolemploi/browser.py index dc9cad25a2408f8cd4377f85950ca306129eae7e..34b580008a9256920420538369727b43baaf9490 100644 --- a/modules/popolemploi/browser.py +++ b/modules/popolemploi/browser.py @@ -17,8 +17,8 @@ # You should have received a copy of the GNU Affero General Public License # along with weboob. If not, see . -from weboob.tools.browser.decorators import id2url -from weboob.tools.browser import Browser +from weboob.deprecated.browser.decorators import id2url +from weboob.deprecated.browser import Browser import urllib from .pages import SearchPage, AdvertPage diff --git a/modules/popolemploi/pages.py b/modules/popolemploi/pages.py index 436210eb0496b470ebba9fe38c7b5f76d76a4b1f..73baaa1e09861cbd24bfefec7da0140c4a765fa5 100644 --- a/modules/popolemploi/pages.py +++ b/modules/popolemploi/pages.py @@ -18,7 +18,7 @@ # along with weboob. If not, see . from weboob.tools.html import html2text -from weboob.tools.browser import Page +from weboob.deprecated.browser import Page import dateutil.parser import re diff --git a/modules/presseurop/browser.py b/modules/presseurop/browser.py index 3f57f69832727b603bd54e8c3373ca3406501d64..8e5e823383bee4a3df8fff9f681053de36621ad5 100644 --- a/modules/presseurop/browser.py +++ b/modules/presseurop/browser.py @@ -21,7 +21,7 @@ from datetime import date, datetime, time from .pages.article import PresseuropPage, CartoonPage, DailySinglePage,\ DailyTitlesPage -from weboob.tools.browser import Browser +from weboob.deprecated.browser import Browser from weboob.tools.ordereddict import OrderedDict diff --git a/modules/prixcarburants/browser.py b/modules/prixcarburants/browser.py index 32ea76582206d47eda0fa47bd14b3347b38239df..167b0ef0d194dd8e01d7fe699960269bceb53475 100644 --- a/modules/prixcarburants/browser.py +++ b/modules/prixcarburants/browser.py @@ -20,7 +20,7 @@ import urllib -from weboob.tools.browser import Browser +from weboob.deprecated.browser import Browser from .pages import IndexPage, ComparisonResultsPage, ShopInfoPage diff --git a/modules/prixcarburants/pages.py b/modules/prixcarburants/pages.py index 216ee27764a8bd39fbdc3bf983a7fefa88b7d281..867beb96102d448284d7cc56ef2c30730ab00223 100644 --- a/modules/prixcarburants/pages.py +++ b/modules/prixcarburants/pages.py @@ -20,7 +20,7 @@ from decimal import Decimal -from weboob.tools.browser import Page +from weboob.deprecated.browser import Page from weboob.capabilities import NotAvailable from weboob.capabilities.pricecomparison import Product, Shop, Price diff --git a/modules/radiofrance/browser.py b/modules/radiofrance/browser.py index 12e59145b81fef3267cb90d44b283f9faed6128e..32ccc8c83a00c8a9e807b86ef76f3fe1d6825988 100644 --- a/modules/radiofrance/browser.py +++ b/modules/radiofrance/browser.py @@ -17,10 +17,10 @@ # You should have received a copy of the GNU Affero General Public License # along with weboob. If not, see . -from weboob.tools.browser import Browser, Page +from weboob.deprecated.browser import Browser, Page from weboob.tools.json import json from weboob.capabilities.video import BaseVideo -from weboob.tools.browser.decorators import id2url +from weboob.deprecated.browser.decorators import id2url from time import time import re diff --git a/modules/razibus/browser.py b/modules/razibus/browser.py index 7079e28282296628ceba14d075eda6645aef7a39..53fd3bafa90236b4c6046819b88d7b7f01affd39 100644 --- a/modules/razibus/browser.py +++ b/modules/razibus/browser.py @@ -18,7 +18,7 @@ # along with weboob. If not, see . -from weboob.browser2 import PagesBrowser, URL +from weboob.browser import PagesBrowser, URL from .pages import EventListPage, EventPage diff --git a/modules/razibus/pages.py b/modules/razibus/pages.py index d63d8efd85e37963b4a8f58eb18762037ee65f1a..378893a806c0cc31b6524d82ad756db533db7d64 100644 --- a/modules/razibus/pages.py +++ b/modules/razibus/pages.py @@ -21,10 +21,10 @@ from datetime import time -from weboob.browser2.page import HTMLPage, method -from weboob.browser2.elements import ItemElement, ListElement -from weboob.browser2.filters.html import CleanHTML, Link -from weboob.browser2.filters.standard import Regexp, CleanText, DateTime, CombineDate, Filter, Env +from weboob.browser.pages import HTMLPage +from weboob.browser.elements import ItemElement, ListElement, method +from weboob.browser.filters.html import CleanHTML, Link +from weboob.browser.filters.standard import Regexp, CleanText, DateTime, CombineDate, Filter, Env class EndTime(Filter): diff --git a/modules/redmine/browser.py b/modules/redmine/browser.py index 7a4e5fd291980c6e99fae07f771851cc0c328337..466b2ccf3c294c05f7d4c624848d80428b85282a 100644 --- a/modules/redmine/browser.py +++ b/modules/redmine/browser.py @@ -24,7 +24,7 @@ import lxml.html from weboob.capabilities.bugtracker import IssueError -from weboob.tools.browser import Browser, BrowserIncorrectPassword +from weboob.deprecated.browser import Browser, BrowserIncorrectPassword from .pages.index import LoginPage, IndexPage, MyPage, ProjectsPage from .pages.wiki import WikiPage, WikiEditPage diff --git a/modules/redmine/module.py b/modules/redmine/module.py index c33bd8911ea35f1fa30c575dc8203fe9d816e860..4feed5c7828bc14de2cec17a8be70127ccfeb0ca 100644 --- a/modules/redmine/module.py +++ b/modules/redmine/module.py @@ -26,7 +26,7 @@ Query, Change from weboob.capabilities.collection import CapCollection, Collection, CollectionNotFound from weboob.tools.backend import Module, BackendConfig -from weboob.core.exceptions import BrowserHTTPNotFound +from weboob.exceptions import BrowserHTTPNotFound from weboob.tools.value import ValueBackendPassword, Value from .browser import RedmineBrowser diff --git a/modules/redmine/pages/index.py b/modules/redmine/pages/index.py index 3c366d8816c5b9558cecca02f63ff65c29b758ed..707f59c639be0998a26815b16db5f03855c8f5b3 100644 --- a/modules/redmine/pages/index.py +++ b/modules/redmine/pages/index.py @@ -18,7 +18,7 @@ # along with weboob. If not, see . -from weboob.tools.browser import Page +from weboob.deprecated.browser import Page class LoginPage(Page): diff --git a/modules/redmine/pages/issues.py b/modules/redmine/pages/issues.py index d9973e1a48e82c93bfb9856bc3d474e2b0564a48..d2d9c5979ef954ddd6154e92d9b0c6d2ef549392 100644 --- a/modules/redmine/pages/issues.py +++ b/modules/redmine/pages/issues.py @@ -22,10 +22,10 @@ import datetime from weboob.capabilities.bugtracker import IssueError -from weboob.tools.browser import Page, BrokenPageError +from weboob.deprecated.browser import Page, BrokenPageError from weboob.tools.date import parse_french_date from weboob.tools.misc import to_unicode -from weboob.tools.mech import ClientForm +from weboob.deprecated.mech import ClientForm from weboob.tools.json import json diff --git a/modules/redmine/pages/wiki.py b/modules/redmine/pages/wiki.py index 06f4597695f702669383071fff136cd71bf94b57..c23b4594fc8e39fe06a6d9e567726b1673842cbe 100644 --- a/modules/redmine/pages/wiki.py +++ b/modules/redmine/pages/wiki.py @@ -18,7 +18,7 @@ # along with weboob. If not, see . -from weboob.tools.browser import Page +from weboob.deprecated.browser import Page class WikiEditPage(Page): diff --git a/modules/regionsjob/browser.py b/modules/regionsjob/browser.py index 6813ee9dcaa2c837a877cea93ad83b326efa94a4..55b88c9163da2abf455eac80e57aca0099e438b5 100644 --- a/modules/regionsjob/browser.py +++ b/modules/regionsjob/browser.py @@ -18,7 +18,7 @@ # along with weboob. If not, see . import urllib -from weboob.browser2 import PagesBrowser, URL +from weboob.browser import PagesBrowser, URL from .pages import SearchPage, AdvertPage diff --git a/modules/regionsjob/pages.py b/modules/regionsjob/pages.py index c99afcf8b7cbfeff0a70ad66ba93fa563f0b7632..d4eda18be0f515597900d246c88e3aa576b0a5fb 100644 --- a/modules/regionsjob/pages.py +++ b/modules/regionsjob/pages.py @@ -17,10 +17,10 @@ # You should have received a copy of the GNU Affero General Public License # along with weboob. If not, see . -from weboob.browser2.page import HTMLPage, method -from weboob.browser2.elements import ItemElement, SkipItem, ListElement -from weboob.browser2.filters.standard import CleanText, Regexp, Format, Env, DateGuesser, DateTime -from weboob.browser2.filters.html import Link, CleanHTML +from weboob.browser.pages import HTMLPage +from weboob.browser.elements import ItemElement, SkipItem, ListElement, method +from weboob.browser.filters.standard import CleanText, Regexp, Format, Env, DateGuesser, DateTime +from weboob.browser.filters.html import Link, CleanHTML from weboob.tools.date import LinearDateGuesser from weboob.capabilities.job import BaseJobAdvert diff --git a/modules/sachsen/browser.py b/modules/sachsen/browser.py index b087c5ad65964d5ad52bb8a47471c570d1caa7d7..74346c77d979a63e63b37fa708a8006034e02fee 100644 --- a/modules/sachsen/browser.py +++ b/modules/sachsen/browser.py @@ -18,7 +18,7 @@ # along with weboob. If not, see . -from weboob.browser2 import PagesBrowser, URL +from weboob.browser import PagesBrowser, URL from .pages import ListPage, HistoryPage diff --git a/modules/sachsen/pages.py b/modules/sachsen/pages.py index 8f581dd45ff7bedc9d90b5d730cb3a51849e2178..5c6de4d02b858ffa13334d3f3aa9fe5fe7a54f68 100644 --- a/modules/sachsen/pages.py +++ b/modules/sachsen/pages.py @@ -17,10 +17,10 @@ # You should have received a copy of the GNU Affero General Public License # along with weboob. If not, see . -from weboob.browser2.page import HTMLPage, method -from weboob.browser2.elements import ListElement, ItemElement -from weboob.browser2.filters.standard import Env, CleanText, Regexp, Field, DateTime, Map -from weboob.browser2.filters.html import Attr +from weboob.browser.pages import HTMLPage +from weboob.browser.elements import ListElement, ItemElement, method +from weboob.browser.filters.standard import Env, CleanText, Regexp, Field, DateTime, Map +from weboob.browser.filters.html import Attr from weboob.capabilities.gauge import Gauge, GaugeMeasure, GaugeSensor from weboob.capabilities.base import NotAvailable, NotLoaded diff --git a/modules/seeklyrics/browser.py b/modules/seeklyrics/browser.py index 602948486be55e17a642298f78067415f83271e4..b127fffa577e369605f464910e1693de3ba076af 100644 --- a/modules/seeklyrics/browser.py +++ b/modules/seeklyrics/browser.py @@ -18,7 +18,7 @@ # along with weboob. If not, see . -from weboob.tools.browser import Browser, BrowserHTTPNotFound +from weboob.deprecated.browser import Browser, BrowserHTTPNotFound from .pages import SongResultsPage, SonglyricsPage, ArtistResultsPage, ArtistSongsPage diff --git a/modules/seeklyrics/pages.py b/modules/seeklyrics/pages.py index 8bde8c25cf01642d49acdaad1a7751fd82488e3d..7f013b61320121eefd19f5205a24ed2538ae4371 100644 --- a/modules/seeklyrics/pages.py +++ b/modules/seeklyrics/pages.py @@ -20,7 +20,7 @@ from weboob.capabilities.lyrics import SongLyrics from weboob.capabilities.base import NotAvailable, NotLoaded -from weboob.tools.browser import Page +from weboob.deprecated.browser import Page class ArtistResultsPage(Page): diff --git a/modules/seloger/browser.py b/modules/seloger/browser.py index ba38b2a6bcb712e541a4696e94caeb1f4745b46b..ce03d8a6a81ce7025890134fb1dea939dc9d0fdb 100644 --- a/modules/seloger/browser.py +++ b/modules/seloger/browser.py @@ -20,7 +20,7 @@ from weboob.tools.json import json -from weboob.tools.browser import Browser +from weboob.deprecated.browser import Browser from weboob.capabilities.housing import Query from .pages import SearchResultsPage, HousingPage diff --git a/modules/seloger/pages.py b/modules/seloger/pages.py index c231cd4731c334c14819fa5a79635b4c50e4ba54..093150d451d64fb012a9b2d5c70c28254141dd9a 100644 --- a/modules/seloger/pages.py +++ b/modules/seloger/pages.py @@ -21,7 +21,7 @@ from decimal import Decimal from dateutil.parser import parse as parse_date -from weboob.tools.browser import Page +from weboob.deprecated.browser import Page from weboob.capabilities.base import NotAvailable from weboob.capabilities.housing import Housing, HousingPhoto diff --git a/modules/senscritique/browser.py b/modules/senscritique/browser.py index d158799a6305e221a6edd1d2939650ed27e970d0..34a113f5d47e29cea54ba4d0e8aa76746a525411 100644 --- a/modules/senscritique/browser.py +++ b/modules/senscritique/browser.py @@ -17,7 +17,8 @@ # You should have received a copy of the GNU Affero General Public License # along with weboob. If not, see . -from weboob.browser2 import PagesBrowser, URL, Firefox +from weboob.browser import PagesBrowser, URL +from weboob.browser.profiles import Firefox from .calendar import SensCritiquenCalendarEvent from .pages import AjaxPage, EventPage, JsonResumePage diff --git a/modules/senscritique/pages.py b/modules/senscritique/pages.py index 001497c4d778496a8a1bcca57a123b6dde5e9c69..e14d125c199141598db58a62dcd6c7cb876bbc81 100644 --- a/modules/senscritique/pages.py +++ b/modules/senscritique/pages.py @@ -22,10 +22,10 @@ from datetime import date, datetime, time, timedelta -from weboob.browser2.page import HTMLPage, method, JsonPage -from weboob.browser2.elements import ItemElement, ListElement -from weboob.browser2.filters.standard import Filter, CleanText, Regexp, Join, Format -from weboob.browser2.filters.html import Link, Attr +from weboob.browser.pages import HTMLPage, JsonPage +from weboob.browser.elements import ItemElement, ListElement, method +from weboob.browser.filters.standard import Filter, CleanText, Regexp, Join, Format +from weboob.browser.filters.html import Link, Attr class Channel(Filter): diff --git a/modules/sfr/browser.py b/modules/sfr/browser.py index ef74183e34603b0e4ee5ce7b7c6b2736239554d6..ab30508d5905ad3bb788c242e1164ed3ce45dbf2 100644 --- a/modules/sfr/browser.py +++ b/modules/sfr/browser.py @@ -23,7 +23,7 @@ from .pages.compose import ClosePage, ComposePage, ConfirmPage, SentPage from .pages.login import LoginPage -from weboob.tools.browser import Browser, BrowserIncorrectPassword +from weboob.deprecated.browser import Browser, BrowserIncorrectPassword __all__ = ['SfrBrowser'] diff --git a/modules/sfr/pages/compose.py b/modules/sfr/pages/compose.py index aadfb8ef4e04d0ef42bad3df79114b8f41f0c6bd..6e089111591f74fc019d97d9684995cda44112d2 100644 --- a/modules/sfr/pages/compose.py +++ b/modules/sfr/pages/compose.py @@ -21,7 +21,7 @@ import re from weboob.capabilities.messages import CantSendMessage -from weboob.tools.browser import Page +from weboob.deprecated.browser import Page class ClosePage(Page): diff --git a/modules/sfr/pages/login.py b/modules/sfr/pages/login.py index d87ec83096631629cd253a1f44e1e3b8cd64f8d1..dd868562dea98114abc51559240de10fb9dd1f76 100644 --- a/modules/sfr/pages/login.py +++ b/modules/sfr/pages/login.py @@ -18,7 +18,7 @@ # along with weboob. If not, see . -from weboob.tools.browser import Page +from weboob.deprecated.browser import Page class LoginPage(Page): diff --git a/modules/societegenerale/browser.py b/modules/societegenerale/browser.py index ec947f828f2d2d1c868b64b5a610515631ce1f62..36b87e87b1023410411f2ba6baf17e54dc9d3b38 100644 --- a/modules/societegenerale/browser.py +++ b/modules/societegenerale/browser.py @@ -18,7 +18,7 @@ # along with weboob. If not, see . -from weboob.tools.browser import Browser, BrowserIncorrectPassword, BrowserUnavailable +from weboob.deprecated.browser import Browser, BrowserIncorrectPassword, BrowserUnavailable from .pages.accounts_list import AccountsList, AccountHistory, CardsList from .pages.login import LoginPage, BadLoginPage diff --git a/modules/societegenerale/pages/accounts_list.py b/modules/societegenerale/pages/accounts_list.py index 458a639686d194f4fc95077ba226744936b3d487..93bf698edcfd66bc93c8c1303c1ac3ca89d2edf9 100644 --- a/modules/societegenerale/pages/accounts_list.py +++ b/modules/societegenerale/pages/accounts_list.py @@ -28,7 +28,7 @@ from weboob.capabilities.base import empty, NotAvailable from weboob.capabilities.bank import Account from weboob.tools.capabilities.bank.transactions import FrenchTransaction -from weboob.tools.browser import BrokenPageError +from weboob.deprecated.browser import BrokenPageError from .base import BasePage diff --git a/modules/societegenerale/pages/base.py b/modules/societegenerale/pages/base.py index 1d17d9a85794acee95833c8cd7c683f20751842b..b59ccc57652b72f21c40a23d2043f751e441ce4d 100644 --- a/modules/societegenerale/pages/base.py +++ b/modules/societegenerale/pages/base.py @@ -18,7 +18,7 @@ # along with weboob. If not, see . -from weboob.tools.browser import Page as _BasePage +from weboob.deprecated.browser import Page as _BasePage class BasePage(_BasePage): diff --git a/modules/societegenerale/pages/login.py b/modules/societegenerale/pages/login.py index 25d7239b5c74bf609cc4b2001b08d877eb32e845..4ea6b83a24daf9e61e87c8ba5f203ed96523be2d 100644 --- a/modules/societegenerale/pages/login.py +++ b/modules/societegenerale/pages/login.py @@ -23,8 +23,8 @@ import re from weboob.tools.json import json -from weboob.tools.browser import BrowserUnavailable -from weboob.tools.mech import ClientForm +from weboob.deprecated.browser import BrowserUnavailable +from weboob.deprecated.mech import ClientForm from .base import BasePage from ..captcha import Captcha, TileError diff --git a/modules/societegenerale/sgpe/browser.py b/modules/societegenerale/sgpe/browser.py index 6963aebdaf517da5e68112fb05b291024ba9ebf4..6ab8e2941b23be71df44822dc3ea7d5139829cdd 100644 --- a/modules/societegenerale/sgpe/browser.py +++ b/modules/societegenerale/sgpe/browser.py @@ -18,7 +18,7 @@ # along with weboob. If not, see . -from weboob.tools.browser import Browser, BrowserIncorrectPassword +from weboob.deprecated.browser import Browser, BrowserIncorrectPassword from weboob.tools.ordereddict import OrderedDict from .pages import LoginPage, ErrorPage, AccountsPage, CardsPage, HistoryPage, CardHistoryPage diff --git a/modules/societegenerale/sgpe/pages.py b/modules/societegenerale/sgpe/pages.py index b7112984da33356f914889980f0ca4e05609a77e..982a40435b5bd4343efcbce022f95ef5973e573e 100644 --- a/modules/societegenerale/sgpe/pages.py +++ b/modules/societegenerale/sgpe/pages.py @@ -23,9 +23,9 @@ from decimal import Decimal from datetime import datetime -from weboob.tools.browser import Page +from weboob.deprecated.browser import Page from weboob.tools.json import json -from weboob.tools.mech import ClientForm +from weboob.deprecated.mech import ClientForm from weboob.tools.misc import to_unicode from weboob.capabilities.bank import Account diff --git a/modules/somafm/module.py b/modules/somafm/module.py index 986a2c348633d570728d31b16970d7853dd0cc72..6779c4d08e08bfec04050f1d16e4885b3d6fa56a 100644 --- a/modules/somafm/module.py +++ b/modules/somafm/module.py @@ -24,8 +24,8 @@ from weboob.tools.capabilities.streaminfo import StreamInfo from weboob.capabilities.collection import CapCollection from weboob.tools.backend import Module -from weboob.tools.browser import StandardBrowser -from weboob.tools.parsers.iparser import IParser +from weboob.deprecated.browser import StandardBrowser +from weboob.deprecated.browser.parsers.iparser import IParser __all__ = ['SomaFMModule'] diff --git a/modules/sueurdemetal/browser.py b/modules/sueurdemetal/browser.py index 42c5ec17998722469dbb117252cfef29f9c70777..533f9d02da15537d0017e1044301aba56ab5b37c 100644 --- a/modules/sueurdemetal/browser.py +++ b/modules/sueurdemetal/browser.py @@ -18,7 +18,7 @@ # along with weboob. If not, see . -from weboob.tools.browser import Browser +from weboob.deprecated.browser import Browser from .pages import PageCity, PageConcert, PageCityList, PageDate, PageDates diff --git a/modules/sueurdemetal/pages.py b/modules/sueurdemetal/pages.py index 22e79b164dc60dc70bfc2d7e0674bf64ba2e6d79..abf97ff22aab66dbb45944d7dd2f9a32810e94ba 100644 --- a/modules/sueurdemetal/pages.py +++ b/modules/sueurdemetal/pages.py @@ -18,7 +18,7 @@ # along with weboob. If not, see . -from weboob.tools.browser import Page +from weboob.deprecated.browser import Page from weboob.tools.date import parse_french_date import re from urlparse import urljoin diff --git a/modules/supertoinette/browser.py b/modules/supertoinette/browser.py index 10c8614d6bd652cf122e84768e07e8e0101aabb0..2e77d7250aa8ba6c7fa80323f63edb8c780fb3f2 100644 --- a/modules/supertoinette/browser.py +++ b/modules/supertoinette/browser.py @@ -18,7 +18,7 @@ # along with weboob. If not, see . -from weboob.tools.browser import Browser, BrowserHTTPNotFound +from weboob.deprecated.browser import Browser, BrowserHTTPNotFound from .pages import RecipePage, ResultsPage diff --git a/modules/supertoinette/pages.py b/modules/supertoinette/pages.py index ee0e501add8b1660505089042f5e2104b30a17f9..0ab7dea1e250a23bef755ed992b6a2d4afaaca11 100644 --- a/modules/supertoinette/pages.py +++ b/modules/supertoinette/pages.py @@ -20,7 +20,7 @@ from weboob.capabilities.recipe import Recipe from weboob.capabilities.base import NotAvailable, NotLoaded -from weboob.tools.browser import Page +from weboob.deprecated.browser import Page import string diff --git a/modules/taz/browser.py b/modules/taz/browser.py index ea1009d366778fa6db448496e0709e3f8f63310b..e23ac0407789b4981db9dd3c7c89f303b04aecf2 100644 --- a/modules/taz/browser.py +++ b/modules/taz/browser.py @@ -19,7 +19,7 @@ # along with weboob. If not, see . from .pages.article import ArticlePage -from weboob.tools.browser import Browser +from weboob.deprecated.browser import Browser class NewspaperTazBrowser(Browser): diff --git a/modules/tinder/browser.py b/modules/tinder/browser.py index 0d01d5e100fdf98309987afd2f23d7ad9edf0097..5dc4f86c3047d6cf1597080f46d1e64cd290305b 100644 --- a/modules/tinder/browser.py +++ b/modules/tinder/browser.py @@ -20,8 +20,10 @@ import re -from weboob.browser2 import DomainBrowser, HTMLPage, Profile -from weboob.core.exceptions import BrowserIncorrectPassword +from weboob.browser import DomainBrowser +from weboob.browser.pages import HTMLPage +from weboob.browser.profiles import Profile +from weboob.exceptions import BrowserIncorrectPassword from weboob.tools.json import json diff --git a/modules/transilien/browser.py b/modules/transilien/browser.py index 97ba0f2421a8140fc102a4dd68323171c769ff7d..5f24ed311dbd2daf70732b40abe00f3e66faec72 100644 --- a/modules/transilien/browser.py +++ b/modules/transilien/browser.py @@ -19,7 +19,7 @@ # along with weboob. If not, see . from datetime import datetime -from weboob.browser2 import PagesBrowser, URL +from weboob.browser import PagesBrowser, URL from .pages import StationsPage, DeparturesPage, DeparturesPage2, HorairesPage, RoadMapPage diff --git a/modules/transilien/pages.py b/modules/transilien/pages.py index 9aad21489dee63d1fc7e0eede9554a9b9401e7a1..edf1352a6ae4282f8e256a56d776b8b46c102b7c 100644 --- a/modules/transilien/pages.py +++ b/modules/transilien/pages.py @@ -20,13 +20,13 @@ import re -from weboob.browser2.page import JsonPage, HTMLPage, method -from weboob.browser2.elements import TableElement, ItemElement, ListElement +from weboob.browser.pages import JsonPage, HTMLPage +from weboob.browser.elements import TableElement, ItemElement, ListElement, method from weboob.capabilities.travel import Station, Departure, RoadStep from weboob.capabilities import NotAvailable -from weboob.browser2.filters.standard import CleanText, TableCell, Filter, DateTime, Env, Regexp, Duration -from weboob.browser2.filters.json import Dict -from weboob.browser2.filters.html import Link +from weboob.browser.filters.standard import CleanText, TableCell, Filter, DateTime, Env, Regexp, Duration +from weboob.browser.filters.json import Dict +from weboob.browser.filters.html import Link from weboob.tools.date import LinearDateGuesser diff --git a/modules/trictractv/browser.py b/modules/trictractv/browser.py index b498dd66108f9b3c9dd8014390b18e8216f8c501..900b4641bbb9bac65c5777633fd8f4ff24073bf7 100644 --- a/modules/trictractv/browser.py +++ b/modules/trictractv/browser.py @@ -19,8 +19,8 @@ import re -from weboob.tools.browser import Browser -from weboob.tools.browser.decorators import id2url +from weboob.deprecated.browser import Browser +from weboob.deprecated.browser.decorators import id2url from .pages import IndexPage, VideoPage from .video import TricTracTVVideo diff --git a/modules/trictractv/pages.py b/modules/trictractv/pages.py index b99d1aac1f51011668ecd09e30f9ade2fcc0a8e9..0ffcae8512afac5806eac2c8198cb6115301b6e3 100644 --- a/modules/trictractv/pages.py +++ b/modules/trictractv/pages.py @@ -21,7 +21,7 @@ import re from weboob.capabilities.image import BaseImage -from weboob.tools.browser import Page, BrokenPageError +from weboob.deprecated.browser import Page, BrokenPageError from .video import TricTracTVVideo diff --git a/modules/tvsubtitles/browser.py b/modules/tvsubtitles/browser.py index de4f3650b36be67a0a6fbe7fe3b427ac81962055..3dce1bf548935b69f4a262a1a8040427e423cf97 100644 --- a/modules/tvsubtitles/browser.py +++ b/modules/tvsubtitles/browser.py @@ -18,7 +18,7 @@ # along with weboob. If not, see . -from weboob.tools.browser import Browser, BrowserHTTPNotFound +from weboob.deprecated.browser import Browser, BrowserHTTPNotFound from .pages import SeriePage, SearchPage, SeasonPage, HomePage diff --git a/modules/tvsubtitles/pages.py b/modules/tvsubtitles/pages.py index 07e5a7eb86524348e95e7b112321b82e9847b870..9d2ef3058e5d534676543216b2935a6557d8cf25 100644 --- a/modules/tvsubtitles/pages.py +++ b/modules/tvsubtitles/pages.py @@ -20,7 +20,7 @@ import re from weboob.capabilities.subtitle import Subtitle -from weboob.tools.browser import Page +from weboob.deprecated.browser import Page class HomePage(Page): diff --git a/modules/twitter/browser.py b/modules/twitter/browser.py index 9afbf2d2bc9693af9cffb0955bbb54283be9ee0d..12e92c1340a3eb12b5b32658b18f084de9a32453 100644 --- a/modules/twitter/browser.py +++ b/modules/twitter/browser.py @@ -17,8 +17,8 @@ # You should have received a copy of the GNU Affero General Public License # along with weboob. If not, see . -from weboob.browser2 import LoginBrowser, URL, need_login -from weboob.tools.browser import BrowserIncorrectPassword +from weboob.browser import LoginBrowser, URL, need_login +from weboob.deprecated.browser import BrowserIncorrectPassword from weboob.capabilities.messages import Message from .pages import LoginPage, LoginErrorPage, ThreadPage, Tweet, TrendsPage,\ TimelinePage, HomeTimelinePage, SearchTimelinePage diff --git a/modules/twitter/module.py b/modules/twitter/module.py index 7e87b4542fc4f343fcdb4e764e6c6e3641bd5ac1..ac94bf3b45ff25542d427b0398cdc3367fef96c9 100644 --- a/modules/twitter/module.py +++ b/modules/twitter/module.py @@ -23,7 +23,7 @@ from weboob.capabilities.messages import CapMessages, Thread, CapMessagesPost from weboob.capabilities.collection import CapCollection, CollectionNotFound, Collection from weboob.capabilities.base import find_object -from weboob.core.exceptions import BrowserForbidden +from weboob.exceptions import BrowserForbidden from .browser import TwitterBrowser import itertools diff --git a/modules/twitter/pages.py b/modules/twitter/pages.py index 9153ebc0ad8abf632bc540dea5f0732181b09d1b..469683329393e1b123b9b6e7d18ba772f62e3015 100644 --- a/modules/twitter/pages.py +++ b/modules/twitter/pages.py @@ -23,10 +23,10 @@ import lxml.html as html import urllib -from weboob.browser2.page import HTMLPage, JsonPage, method, FormNotFound, pagination -from weboob.browser2.elements import ListElement, ItemElement -from weboob.browser2.filters.standard import CleanText, Format, Regexp, Env, DateTime, Filter -from weboob.browser2.filters.html import Link, Attr +from weboob.browser.pages import HTMLPage, JsonPage, FormNotFound, pagination +from weboob.browser.elements import ListElement, ItemElement, method +from weboob.browser.filters.standard import CleanText, Format, Regexp, Env, DateTime, Filter +from weboob.browser.filters.html import Link, Attr from weboob.capabilities.messages import Thread, Message from weboob.capabilities.base import BaseObject diff --git a/modules/unsee/browser.py b/modules/unsee/browser.py index b1ed77daf3f23a6ff86847e6d32df7455ba5c019..59287145469a40270994b551c0db1788e0e0c721 100644 --- a/modules/unsee/browser.py +++ b/modules/unsee/browser.py @@ -18,13 +18,13 @@ # along with weboob. If not, see . -from weboob.tools.browser import Browser +from weboob.deprecated.browser import Browser import os from uuid import uuid4 from urllib2 import Request from urlparse import urljoin from weboob.tools.json import json -from weboob.tools.parsers.lxmlparser import LxmlHtmlParser +from weboob.deprecated.browser.parsers.lxmlparser import LxmlHtmlParser __all__ = ['UnseeBrowser'] diff --git a/modules/ups/browser.py b/modules/ups/browser.py index c80f7d59964a06eed93dfac5de5ec38d1e4a2061..6eeee645e82bb14626b0c581fe8a79634f04b9dc 100644 --- a/modules/ups/browser.py +++ b/modules/ups/browser.py @@ -19,7 +19,7 @@ import urllib -from weboob.tools.browser import Browser +from weboob.deprecated.browser import Browser from .pages import TrackPage diff --git a/modules/ups/pages.py b/modules/ups/pages.py index 2c2d3f0364c778217b0c4ce3ee8007d339dfb457..907b4dab2630dfef57c41bf21fcd19a2cae880f2 100644 --- a/modules/ups/pages.py +++ b/modules/ups/pages.py @@ -22,7 +22,7 @@ from dateutil.parser import parse as parse_date from weboob.capabilities.parcel import Parcel, Event -from weboob.tools.browser import Page +from weboob.deprecated.browser import Page class TrackPage(Page): diff --git a/modules/vimeo/browser.py b/modules/vimeo/browser.py index c87ff0ee459b3162f27feebe7ebcdb9c87d57945..51a689c0027fcc3d22010f534910f89305846c2d 100644 --- a/modules/vimeo/browser.py +++ b/modules/vimeo/browser.py @@ -18,8 +18,8 @@ # You should have received a copy of the GNU Affero General Public License # along with weboob. If not, see . -from weboob.browser2 import PagesBrowser, URL -from weboob.browser2.exceptions import HTTPNotFound +from weboob.browser import PagesBrowser, URL +from weboob.browser.exceptions import HTTPNotFound from .pages import SearchPage, VideoPage, VideoJsonPage import urllib diff --git a/modules/vimeo/pages.py b/modules/vimeo/pages.py index be44ee9a7310f958f88c334f4b44f55663c9dc6b..b51b30b87735b86f38511066a6883d8d036d13c5 100644 --- a/modules/vimeo/pages.py +++ b/modules/vimeo/pages.py @@ -20,11 +20,11 @@ from weboob.capabilities.video import BaseVideo from weboob.capabilities.image import BaseImage -from weboob.core.exceptions import ParseError -from weboob.browser2.elements import ItemElement, ListElement -from weboob.browser2.page import HTMLPage, method, pagination, JsonPage -from weboob.browser2.filters.standard import Regexp, Env, CleanText, DateTime, Duration, Field -from weboob.browser2.filters.html import Attr, Link +from weboob.exceptions import ParseError +from weboob.browser.elements import ItemElement, ListElement, method +from weboob.browser.pages import HTMLPage, pagination, JsonPage +from weboob.browser.filters.standard import Regexp, Env, CleanText, DateTime, Duration, Field +from weboob.browser.filters.html import Attr, Link import re diff --git a/modules/vlille/browser.py b/modules/vlille/browser.py index 8acb880a4d692e94dbc71284a8638e90174313c3..caaf1b95ed58d6798ed50470a552ad865fb0d7da 100644 --- a/modules/vlille/browser.py +++ b/modules/vlille/browser.py @@ -18,7 +18,7 @@ # along with weboob. If not, see . -from weboob.browser2 import PagesBrowser, URL +from weboob.browser import PagesBrowser, URL from .pages import ListStationsPage, InfoStationPage diff --git a/modules/vlille/pages.py b/modules/vlille/pages.py index d6fd100e49f9c1d914275402a245e208cc0d7fb8..a5fe5f29905f7222321dc13e1deed31e1683c831 100644 --- a/modules/vlille/pages.py +++ b/modules/vlille/pages.py @@ -18,9 +18,9 @@ # along with weboob. If not, see . -from weboob.browser2.page import HTMLPage, XMLPage, method -from weboob.browser2.elements import ListElement, ItemElement, TableElement -from weboob.browser2.filters.standard import CleanText, TableCell, Filter +from weboob.browser.pages import HTMLPage, XMLPage +from weboob.browser.elements import ListElement, ItemElement, TableElement, method +from weboob.browser.filters.standard import CleanText, TableCell, Filter from weboob.capabilities.gauge import Gauge, GaugeMeasure, GaugeSensor from weboob.capabilities.base import NotLoaded diff --git a/modules/voyagessncf/browser.py b/modules/voyagessncf/browser.py index 3a75590eb809199b720c99270c93bcce3cbb9e4b..8eb115f9940c26d651d50b59db4ae32bb55442ae 100644 --- a/modules/voyagessncf/browser.py +++ b/modules/voyagessncf/browser.py @@ -19,7 +19,7 @@ from random import randint -from weboob.tools.browser import Browser +from weboob.deprecated.browser import Browser from .pages import CitiesPage, SearchPage, SearchErrorPage, \ SearchInProgressPage, ResultsPage, ForeignPage diff --git a/modules/voyagessncf/pages.py b/modules/voyagessncf/pages.py index 4bbe68afd3f7ce354381fad383fdd10b624ca1cb..4566df5acf59826f74c19eb6b176b6e9059574b4 100644 --- a/modules/voyagessncf/pages.py +++ b/modules/voyagessncf/pages.py @@ -22,9 +22,9 @@ from decimal import Decimal from datetime import time, datetime, timedelta -from weboob.tools.browser import Page +from weboob.deprecated.browser import Page from weboob.tools.json import json -from weboob.tools.mech import ClientForm +from weboob.deprecated.mech import ClientForm from weboob.capabilities.base import UserError, Currency diff --git a/modules/weather/browser.py b/modules/weather/browser.py index 96a2befae734df225a6edfb29e889d1506717938..9441505beea9ac7e1d95802ad7eedb478eaca937 100644 --- a/modules/weather/browser.py +++ b/modules/weather/browser.py @@ -20,7 +20,7 @@ import urllib -from weboob.tools.browser import Browser +from weboob.deprecated.browser import Browser from .pages import ForecastPage, WeatherPage, CityPage diff --git a/modules/weather/pages.py b/modules/weather/pages.py index c9afe1af37417714132b7612c934b3e61972b791..8354ac8c487301371318b5f9149e98d139af0909 100644 --- a/modules/weather/pages.py +++ b/modules/weather/pages.py @@ -18,7 +18,7 @@ # along with weboob. If not, see . -from weboob.tools.browser import Page +from weboob.deprecated.browser import Page from weboob.capabilities.weather import Forecast, Current, City import datetime diff --git a/modules/wellsfargo/browser.py b/modules/wellsfargo/browser.py index b9c87c16855c7f9783405b9d336c568163ea67a2..95a9012adddd8de0c3c98e37ae8cc516c86f4322 100644 --- a/modules/wellsfargo/browser.py +++ b/modules/wellsfargo/browser.py @@ -21,8 +21,8 @@ from time import sleep from weboob.capabilities.bank import AccountNotFound -from weboob.browser2 import LoginBrowser, URL, need_login -from weboob.core.exceptions import BrowserIncorrectPassword +from weboob.browser import LoginBrowser, URL, need_login +from weboob.exceptions import BrowserIncorrectPassword from .pages import LoginPage, LoginRedirectPage, LoggedInPage, SummaryPage, \ DynamicPage diff --git a/modules/wellsfargo/pages.py b/modules/wellsfargo/pages.py index 45f2ff4a0b3a22a41855989d7c532b4ecbe6a8c2..b0cffeb7be7f0828409c95e7061cd4f1feb004ce 100644 --- a/modules/wellsfargo/pages.py +++ b/modules/wellsfargo/pages.py @@ -18,7 +18,7 @@ # along with weboob. If not, see . from weboob.capabilities.bank import Account, Transaction -from weboob.browser2.page import Page, HTMLPage, LoggedPage, RawPage +from weboob.browser.pages import Page, HTMLPage, LoggedPage, RawPage from urllib import unquote from .parsers import StatementParser, clean_amount, clean_label import itertools diff --git a/modules/wordreference/browser.py b/modules/wordreference/browser.py index 5e4813e4c40591af30cd9007353c29d2139dc79a..f039971b238c70afd7340e2c33446ba0c507c662 100644 --- a/modules/wordreference/browser.py +++ b/modules/wordreference/browser.py @@ -20,7 +20,7 @@ import urllib -from weboob.tools.browser import Browser +from weboob.deprecated.browser import Browser from .pages import TranslatePage diff --git a/modules/wordreference/pages.py b/modules/wordreference/pages.py index 63e789cb896cbf6d1c4a1cce983769d5f8c21690..252f8861648132c080208281e861e822c307a2e6 100644 --- a/modules/wordreference/pages.py +++ b/modules/wordreference/pages.py @@ -18,7 +18,7 @@ # along with weboob. If not, see . -from weboob.tools.browser import Page +from weboob.deprecated.browser import Page import re diff --git a/modules/yahoo/module.py b/modules/yahoo/module.py index fdfcb10d95ae8111f4c573747cd7c5c36dccdb29..f290a90e40a8742e92f419ea78de693aa2229022 100644 --- a/modules/yahoo/module.py +++ b/modules/yahoo/module.py @@ -24,7 +24,7 @@ from weboob.capabilities.weather import CapWeather, CityNotFound, Current, Forecast, City from weboob.tools.backend import Module -from weboob.tools.browser import StandardBrowser +from weboob.deprecated.browser import StandardBrowser __all__ = ['YahooModule'] diff --git a/modules/youjizz/browser.py b/modules/youjizz/browser.py index b4e976dbc080a43ff2b7400b303f6ca509ecc80b..0e2dc468515d940e548d1a184e93867268b6a642 100644 --- a/modules/youjizz/browser.py +++ b/modules/youjizz/browser.py @@ -18,7 +18,7 @@ # along with weboob. If not, see . -from weboob.browser2 import PagesBrowser, URL +from weboob.browser import PagesBrowser, URL from .pages.index import IndexPage from .pages.video import VideoPage diff --git a/modules/youjizz/pages/index.py b/modules/youjizz/pages/index.py index 4e4517c17492f8ef481e99f2257c52036952eae9..dd800477e56ee7a73753acecfa024cc88a487df3 100644 --- a/modules/youjizz/pages/index.py +++ b/modules/youjizz/pages/index.py @@ -18,11 +18,10 @@ # along with weboob. If not, see . -from weboob.browser2 import HTMLPage -from weboob.browser2.page import method, pagination -from weboob.browser2.elements import ListElement, ItemElement -from weboob.browser2.filters.standard import CleanText, Duration, Regexp -from weboob.browser2.filters.html import Link, CSS +from weboob.browser.pages import HTMLPage, pagination +from weboob.browser.elements import ListElement, ItemElement, method +from weboob.browser.filters.standard import CleanText, Duration, Regexp +from weboob.browser.filters.html import Link, CSS from weboob.capabilities.base import NotAvailable from weboob.capabilities.image import BaseImage from weboob.capabilities.video import BaseVideo diff --git a/modules/youjizz/pages/video.py b/modules/youjizz/pages/video.py index d69c8f52d2bf06e1768e94c8f23ff07b430d2d86..919538cce64099e30410cc2d522418a4e575070c 100644 --- a/modules/youjizz/pages/video.py +++ b/modules/youjizz/pages/video.py @@ -20,9 +20,9 @@ import re -from weboob.browser2.page import method, HTMLPage -from weboob.browser2.elements import ItemElement -from weboob.browser2.filters.standard import CleanText, Env, Duration +from weboob.browser.pages import HTMLPage +from weboob.browser.elements import ItemElement, method +from weboob.browser.filters.standard import CleanText, Env, Duration from weboob.capabilities.video import BaseVideo from weboob.tools.misc import to_unicode diff --git a/modules/youporn/browser.py b/modules/youporn/browser.py index 1f00eb3bb71a72f9be19699a4fabfdcd119ba293..e4f9b5afe00222f0a6beb688c6cd6b73d2f84f36 100644 --- a/modules/youporn/browser.py +++ b/modules/youporn/browser.py @@ -18,8 +18,8 @@ # along with weboob. If not, see . -from weboob.tools.browser import Browser -from weboob.tools.browser.decorators import id2url +from weboob.deprecated.browser import Browser +from weboob.deprecated.browser.decorators import id2url from .pages.index import IndexPage from .pages.video import VideoPage diff --git a/modules/youporn/pages/base.py b/modules/youporn/pages/base.py index 12d05c39254f2db8a84605f70772f63568f177a4..77db38890dfe3fd5796f4347a3ccf7d253be0a0f 100644 --- a/modules/youporn/pages/base.py +++ b/modules/youporn/pages/base.py @@ -17,11 +17,11 @@ # You should have received a copy of the GNU Affero General Public License # along with weboob. If not, see . -from weboob.tools.mech import ClientForm +from weboob.deprecated.mech import ClientForm ControlNotFoundError = ClientForm.ControlNotFoundError from mechanize import FormNotFoundError -from weboob.tools.browser import Page +from weboob.deprecated.browser import Page class PornPage(Page): diff --git a/modules/youporn/pages/video.py b/modules/youporn/pages/video.py index 239351dcf9ab5c1e6868217708efcd32c9df6b19..6d62e2968bf335d028efe95fa7afa3d02103b44f 100644 --- a/modules/youporn/pages/video.py +++ b/modules/youporn/pages/video.py @@ -23,7 +23,7 @@ from dateutil.parser import parse as parse_dt from weboob.capabilities.base import NotAvailable -from weboob.tools.browser import BrokenPageError +from weboob.deprecated.browser import BrokenPageError from .base import PornPage from ..video import YoupornVideo diff --git a/modules/youtube/browser.py b/modules/youtube/browser.py index e4f6f6ed723f04a4ddf7e81a7595bc8d74318751..60eef4a8993cb4ba975cbb91d2d1424d9be45da1 100644 --- a/modules/youtube/browser.py +++ b/modules/youtube/browser.py @@ -18,7 +18,7 @@ # along with weboob. If not, see . -from weboob.tools.browser import Browser +from weboob.deprecated.browser import Browser from .pages import BaseYoutubePage, VideoPage, ForbiddenVideoPage, \ VerifyAgePage, VerifyControversyPage, \ diff --git a/modules/youtube/pages.py b/modules/youtube/pages.py index 285fc81f289751f79abcaf9dcbfd1753925bc6f2..27d7416dfdd91d9693146f39c5e52d802de165d5 100644 --- a/modules/youtube/pages.py +++ b/modules/youtube/pages.py @@ -32,7 +32,7 @@ import io from weboob.capabilities.base import UserError -from weboob.tools.browser import Page, BrokenPageError, BrowserIncorrectPassword +from weboob.deprecated.browser import Page, BrokenPageError, BrowserIncorrectPassword from weboob.tools.json import json diff --git a/setup.cfg b/setup.cfg index 59fbd5dbc056591a85f04e0d4e3b96d7f1a5d70f..1edd54a3bc8252b1e73d40a2174076883df63842 100644 --- a/setup.cfg +++ b/setup.cfg @@ -9,7 +9,7 @@ tests = weboob.capabilities.bank, weboob.tools.application.formatters.json, weboob.tools.application.formatters.table, weboob.tools.path, - weboob.browser2.filters.standard + weboob.browser.filters.standard [isort] known_first_party=weboob diff --git a/tools/boilerplate_data/base_browser.py b/tools/boilerplate_data/base_browser.py index cc3db9ca98d7cbe464a440726f0d64a414e701ef..23c3496c6e4db5e7b9614fb7e48875b8f1c38f48 100644 --- a/tools/boilerplate_data/base_browser.py +++ b/tools/boilerplate_data/base_browser.py @@ -1,5 +1,5 @@ <%inherit file="layout.py"/> -from weboob.browser2 import PagesBrowser, URL +from weboob.browser import PagesBrowser, URL from .pages import Page1, Page2 diff --git a/tools/boilerplate_data/base_pages.py b/tools/boilerplate_data/base_pages.py index 74b44c8be10a52312ec15936036b7a5d8d02cbfa..5852ac1cf5fc2f0639c92a39dcfe7ea7df91c6e4 100644 --- a/tools/boilerplate_data/base_pages.py +++ b/tools/boilerplate_data/base_pages.py @@ -1,5 +1,5 @@ <%inherit file="layout.py"/> -from weboob.browser2 import HTMLPage +from weboob.browser import HTMLPage class Page1(HTMLPage): diff --git a/tools/certhash.py b/tools/certhash.py index 219c3249695231f9383a0118015adb8d6b6785e9..55ad133efb948f41d40002b5b88c951a5af41316 100755 --- a/tools/certhash.py +++ b/tools/certhash.py @@ -1,6 +1,6 @@ #!/usr/bin/env python from __future__ import print_function import sys -from weboob.tools.browser import StandardBrowser +from weboob.deprecated.browser import StandardBrowser print(StandardBrowser()._certhash(sys.argv[1])) diff --git a/weboob/browser2/__init__.py b/weboob/browser/__init__.py similarity index 61% rename from weboob/browser2/__init__.py rename to weboob/browser/__init__.py index cfa754bc198e3fa6d84900101d3b69a88b3b5e42..51d7bd5ba5b022c8398f14a541613019a0f05b02 100644 --- a/weboob/browser2/__init__.py +++ b/weboob/browser/__init__.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- -# Copyright(C) 2012 Laurent Bachelier +# Copyright(C) 2012-2014 Laurent Bachelier # # This file is part of weboob. # @@ -17,9 +17,9 @@ # You should have received a copy of the GNU Affero General Public License # along with weboob. If not, see . -from .browser import Browser, DomainBrowser, Wget, Firefox, UrlNotAllowed, Profile -from .page import PagesBrowser, Page, URL, HTMLPage, LoginBrowser, need_login, JsonPage, LoggedPage, XMLPage +from .browsers import Browser, DomainBrowser, UrlNotAllowed, PagesBrowser, LoginBrowser, need_login +from .url import URL -__all__ = ['Browser', 'DomainBrowser', 'Wget', 'Firefox', 'UrlNotAllowed', 'Profile', 'XMLPage', - 'PagesBrowser', 'Page', 'URL', 'HTMLPage', 'LoginBrowser', 'need_login', 'JsonPage', 'LoggedPage'] +__all__ = ['Browser', 'DomainBrowser', 'UrlNotAllowed', 'PagesBrowser', 'URL', + 'LoginBrowser', 'need_login'] diff --git a/weboob/browser2/browser.py b/weboob/browser/browsers.py similarity index 75% rename from weboob/browser2/browser.py rename to weboob/browser/browsers.py index 80502b6b95c60962e32a66b6ea9ce9f5e03fdeb8..d3647e23c76e391e4e10146a2bd460a693c4aff8 100644 --- a/weboob/browser2/browser.py +++ b/weboob/browser/browsers.py @@ -26,6 +26,7 @@ from urlparse import urlparse, urljoin import os import sys +from copy import deepcopy try: import requests @@ -35,85 +36,14 @@ raise ImportError('Please install python-requests >= 2.0') from weboob.tools.log import getLogger +from weboob.tools.ordereddict import OrderedDict from .cookies import WeboobCookieJar from .exceptions import HTTPNotFound, ClientError, ServerError from .sessions import FuturesSession - - -class Profile(object): - """ - A profile represents the way Browser should act. - Usually it is to mimic a real browser. - """ - - def setup_session(self, session): - """ - Change default headers, set up hooks, etc. - - Warning: Do not enable lzma, bzip or bzip2, sdch encodings - as python-requests does not support it yet. - Supported as of 2.2: gzip, deflate, compress. - In doubt, do not change the default Accept-Encoding header - of python-requests. - """ - raise NotImplementedError() - - -class Weboob(Profile): - """ - It's us! - Recommended for Weboob-friendly websites only. - """ - - def __init__(self, version): - self.version = version - - def setup_session(self, session): - session.headers['User-Agent'] = 'weboob/%s' % self.version - - -class Firefox(Profile): - """ - Try to mimic a specific version of Firefox. - Ideally, it should follow the current ESR Firefox: - https://www.mozilla.org/en-US/firefox/organizations/all.html - Do not change the Firefox version without checking the Gecko one! - """ - - def setup_session(self, session): - """ - Set up headers for a standard Firefox request - (except for DNT which isn't on by default but is a good idea). - - The goal is to be unidentifiable. - """ - # Replace all base requests headers - # https://developer.mozilla.org/en/Gecko_user_agent_string_reference - # https://bugzilla.mozilla.org/show_bug.cgi?id=572650 - session.headers = { - 'Accept-Language': 'en-us,en;q=0.5', - 'Accept-Encoding': 'gzip, deflate', - 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', - 'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Firefox/31.0', - 'DNT': '1'} - - -class Wget(Profile): - """ - Common alternative user agent. - Some websites will give you a version with less JavaScript. - Some others could ban you (after all, wget is not a real browser). - """ - def __init__(self, version='1.11.4'): - self.version = version - - def setup_session(self, session): - # Don't remove base headers, if websites want to block fake browsers, - # they will probably block any wget user agent anyway. - session.headers.update({ - 'Accept': '*/*', - 'User-Agent': 'Wget/%s' % self.version}) +from .profiles import Firefox +from .pages import NextPage +from .url import URL class Browser(object): @@ -579,3 +509,183 @@ def go_home(self): Go to the "home" page, usually the BASEURL. """ return self.location(self.BASEURL or self.absurl('/')) + + +class _PagesBrowserMeta(type): + """ + Private meta-class used to keep order of URLs instances of PagesBrowser. + """ + def __new__(mcs, name, bases, attrs): + urls = [(url_name, attrs.pop(url_name)) for url_name, obj in attrs.items() if isinstance(obj, URL)] + urls.sort(key=lambda x: x[1]._creation_counter) + + new_class = super(_PagesBrowserMeta, mcs).__new__(mcs, name, bases, attrs) + if new_class._urls is None: + new_class._urls = OrderedDict() + else: + new_class._urls = deepcopy(new_class._urls) + new_class._urls.update(urls) + return new_class + +class PagesBrowser(DomainBrowser): + r""" + A browser which works pages and keep state of navigation. + + To use it, you have to derive it and to create URL objects as class + attributes. When open() or location() are called, if the url matches + one of URL objects, it returns a Page object. In case of location(), it + stores it in self.page. + + Example: + + >>> class HomePage(Page): + ... pass + ... + >>> class ListPage(Page): + ... pass + ... + >>> class MyBrowser(PagesBrowser): + ... BASEURL = 'http://example.org' + ... home = URL('/(index\.html)?', HomePage) + ... list = URL('/list\.html', ListPage) + ... + + You can then use URL instances to go on pages. + """ + + + _urls = None + __metaclass__ = _PagesBrowserMeta + + def __getattr__(self, name): + if self._urls is not None and name in self._urls: + return self._urls[name] + else: + raise AttributeError("'%s' object has no attribute '%s'" % ( + self.__class__.__name__, name)) + + def __init__(self, *args, **kwargs): + super(PagesBrowser, self).__init__(*args, **kwargs) + + self.page = None + self._urls = deepcopy(self._urls) + for url in self._urls.itervalues(): + url.browser = self + + def open(self, *args, **kwargs): + """ + Same method than + :meth:`weboob.browser.browsers.DomainBrowser.open`, but the + response contains an attribute `page` if the url matches any + :class:`URL` object. + """ + + callback = kwargs.pop('callback', lambda response: response) + + # Have to define a callback to seamlessly process synchronous and + # asynchronous requests, see :meth:`Browser.open` and its `async` + # and `callback` params. + def internal_callback(response): + # Try to handle the response page with an URL instance. + response.page = None + for url in self._urls.itervalues(): + page = url.handle(response) + if page is not None: + self.logger.debug('Handle %s with %s' % (response.url, page.__class__.__name__)) + response.page = page + break + + if response.page is None: + self.logger.debug('Unable to handle %s' % response.url) + + return callback(response) + + return super(PagesBrowser, self).open(callback=internal_callback, *args, **kwargs) + + def location(self, *args, **kwargs): + """ + Same method than + :meth:`weboob.browser.browsers.Browser.location`, but if the + url matches any :class:`URL` object, an attribute `page` is added to + response, and the attribute :attr:`PagesBrowser.page` is set. + """ + if self.page is not None: + # Call leave hook. + self.page.on_leave() + + response = self.open(*args, **kwargs) + + self.response = response + self.page = response.page + self.url = response.url + + if self.page is not None: + # Call load hook. + self.page.on_load() + + # Returns self.response in case on_load recalls location() + return self.response + + def pagination(self, func, *args, **kwargs): + r""" + This helper function can be used to handle pagination pages easily. + + When the called function raises an exception :class:`NextPage`, it goes + on the wanted page and recall the function. + + :class:`NextPage` constructor can take an url or a Request object. + + >>> class Page(HTMLPage): + ... def iter_values(self): + ... for el in self.doc.xpath('//li'): + ... yield el.text + ... for next in self.doc.xpath('//a'): + ... raise NextPage(next.attrib['href']) + ... + >>> class Browser(PagesBrowser): + ... BASEURL = 'http://people.symlink.me' + ... list = URL('/~rom1/projects/weboob/list-(?P\d+).html', Page) + ... + >>> b = Browser() + >>> b.list.go(pagenum=1) + >>> list(b.pagination(lambda: b.page.iter_values())) + ['One', 'Two', 'Three', 'Four'] + """ + while True: + try: + for r in func(*args, **kwargs): + yield r + except NextPage as e: + self.location(e.request) + else: + return + + +def need_login(func): + """ + Decorator used to require to be logged to access to this function. + """ + def inner(browser, *args, **kwargs): + if browser.page is None or not browser.page.logged: + browser.do_login() + return func(browser, *args, **kwargs) + + return inner + + +class LoginBrowser(PagesBrowser): + """ + A browser which supports login. + """ + def __init__(self, username, password, *args, **kwargs): + super(LoginBrowser, self).__init__(*args, **kwargs) + self.username = username + self.password = password + + def do_login(self): + """ + Abstract method to implement to login on website. + + It is call when a login is needed. + """ + raise NotImplementedError() diff --git a/weboob/browser2/cookies.py b/weboob/browser/cookies.py similarity index 100% rename from weboob/browser2/cookies.py rename to weboob/browser/cookies.py diff --git a/weboob/browser2/elements.py b/weboob/browser/elements.py similarity index 97% rename from weboob/browser2/elements.py rename to weboob/browser/elements.py index c79ced81851c07522d2df195c0b2a377a2a8cbdd..2934b1746dc49fa9206dc3f584a1e6f9041b4312 100644 --- a/weboob/browser2/elements.py +++ b/weboob/browser/elements.py @@ -23,7 +23,7 @@ from weboob.tools.log import getLogger from weboob.tools.ordereddict import OrderedDict -from weboob.browser2.page import NextPage +from weboob.browser.pages import NextPage from .filters.standard import _Filter, CleanText from .filters.html import AttributeNotFound, XPathNotFound @@ -38,6 +38,16 @@ class DataError(Exception): """ +def method(klass): + """ + Class-decorator to call it as a method. + """ + def inner(self, *args, **kwargs): + return klass(self)(*args, **kwargs) + return inner + + + class AbstractElement(object): _creation_counter = 0 @@ -290,3 +300,5 @@ def __init__(self, *args, **kwargs): def get_colnum(self, name): return self._cols.get(name, None) + + diff --git a/weboob/browser2/exceptions.py b/weboob/browser/exceptions.py similarity index 92% rename from weboob/browser2/exceptions.py rename to weboob/browser/exceptions.py index 54260d00d014a7155e227b86d7945eff08f719fb..2abef1c596d3046f43ad30a0e44a26fa01bf07dd 100644 --- a/weboob/browser2/exceptions.py +++ b/weboob/browser/exceptions.py @@ -18,7 +18,7 @@ # along with weboob. If not, see . from requests.exceptions import HTTPError -from weboob.core.exceptions import BrowserHTTPError, BrowserHTTPNotFound +from weboob.exceptions import BrowserHTTPError, BrowserHTTPNotFound class HTTPNotFound(HTTPError, BrowserHTTPNotFound): diff --git a/weboob/browser2/filters/__init__.py b/weboob/browser/filters/__init__.py similarity index 100% rename from weboob/browser2/filters/__init__.py rename to weboob/browser/filters/__init__.py diff --git a/weboob/browser2/filters/html.py b/weboob/browser/filters/html.py similarity index 100% rename from weboob/browser2/filters/html.py rename to weboob/browser/filters/html.py diff --git a/weboob/browser2/filters/javascript.py b/weboob/browser/filters/javascript.py similarity index 97% rename from weboob/browser2/filters/javascript.py rename to weboob/browser/filters/javascript.py index 51546b9d58095617b58a1bcec36fab6ac3cacdc1..3610aacc6624eb2499e8d083c00e8f433c862649 100644 --- a/weboob/browser2/filters/javascript.py +++ b/weboob/browser/filters/javascript.py @@ -21,8 +21,8 @@ import re from ast import literal_eval -from weboob.browser2.filters.standard import Filter, Regexp, RegexpError -from weboob.core.exceptions import ParseError +from weboob.browser.filters.standard import Filter, Regexp, RegexpError +from weboob.exceptions import ParseError __all__ = ['JSPayload', 'JSVar'] diff --git a/weboob/browser2/filters/json.py b/weboob/browser/filters/json.py similarity index 100% rename from weboob/browser2/filters/json.py rename to weboob/browser/filters/json.py diff --git a/weboob/browser2/filters/standard.py b/weboob/browser/filters/standard.py similarity index 99% rename from weboob/browser2/filters/standard.py rename to weboob/browser/filters/standard.py index 7a391579557708ac8aaf0258631831f7eab1d255..d401823c7f379a3d0dc0488c3ddef6449d11dbef 100644 --- a/weboob/browser2/filters/standard.py +++ b/weboob/browser/filters/standard.py @@ -28,8 +28,8 @@ from weboob.capabilities.base import empty from weboob.tools.compat import basestring -from weboob.core.exceptions import ParseError -from weboob.browser2 import URL +from weboob.exceptions import ParseError +from weboob.browser.url import URL from weboob.tools.log import getLogger class NoDefault(object): @@ -251,7 +251,7 @@ class TableCell(_Filter): For example: >>> from weboob.capabilities.bank import Transaction - >>> from weboob.browser2.elements import TableElement, ItemElement + >>> from weboob.browser.elements import TableElement, ItemElement >>> class table(TableElement): ... head_xpath = '//table/thead/th' ... item_xpath = '//table/tbody/tr' diff --git a/weboob/browser/pages.py b/weboob/browser/pages.py new file mode 100644 index 0000000000000000000000000000000000000000..b5c05321a1045fa78d53c784a92fa86acf8e17ca --- /dev/null +++ b/weboob/browser/pages.py @@ -0,0 +1,344 @@ +# -*- coding: utf-8 -*- + +# Copyright(C) 2014 Romain Bignon +# +# This file is part of weboob. +# +# weboob is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# weboob is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with weboob. If not, see . + +from __future__ import absolute_import + +import warnings +from io import BytesIO + +import requests + +from weboob.tools.ordereddict import OrderedDict +from weboob.tools.compat import basestring + +from weboob.tools.log import getLogger + + +def pagination(func): + r""" + This helper decorator can be used to handle pagination pages easily. + + When the called function raises an exception :class:`NextPage`, it goes on + the wanted page and recall the function. + + :class:`NextPage` constructor can take an url or a Request object. + + >>> class Page(HTMLPage): + ... @pagination + ... def iter_values(self): + ... for el in self.doc.xpath('//li'): + ... yield el.text + ... for next in self.doc.xpath('//a'): + ... raise NextPage(next.attrib['href']) + ... + >>> class Browser(PagesBrowser): + ... BASEURL = 'http://people.symlink.me' + ... list = URL('/~rom1/projects/weboob/list-(?P\d+).html', Page) + ... + >>> b = Browser() + >>> b.list.go(pagenum=1) + >>> list(b.page.iter_values()) + ['One', 'Two', 'Three', 'Four'] + """ + def inner(page, *args, **kwargs): + while True: + try: + for r in func(page, *args, **kwargs): + yield r + except NextPage as e: + result = page.browser.location(e.request) + page = result.page + else: + return + + return inner + + +class NextPage(Exception): + """ + Exception used for example in a Page to tell PagesBrowser.pagination to + go on the next page. + + See :meth:`PagesBrowser.pagination` or decorator :func:`pagination`. + """ + def __init__(self, request): + super(NextPage, self).__init__() + self.request = request + + +class Page(object): + """ + Base page. + """ + logged = False + + def __init__(self, browser, response, params=None): + self.browser = browser + self.logger = getLogger(self.__class__.__name__.lower(), browser.logger) + self.response = response + self.url = self.response.url + self.params = params + + def on_load(self): + """ + Event called when browser loads this page. + """ + + def on_leave(self): + """ + Event called when browser leaves this page. + """ + +class FormNotFound(Exception): + """ + Raised when :meth:`HTMLPage.get_form` can't find a form. + """ + +class FormSubmitWarning(UserWarning): + """ + A form has more than one submit element selected, and will likely + generate an invalid request. + """ + +class Form(OrderedDict): + """ + Represents a form of an HTML page. + + It is used as a dict with pre-filled values from HTML. You can set new + values as strings by setting an item value. + + submit_el allows you to only consider one submit button (which is what + browsers do). If set to None, it takes all of them, and if set to False, + it takes none. + """ + + def __init__(self, page, el, submit_el=None): + super(Form, self).__init__() + self.page = page + self.el = el + self.submit_el = submit_el + self.method = el.attrib.get('method', 'GET') + self.url = el.attrib.get('action', page.url) + self.name = el.attrib.get('name', '') + submits = 0 + + for inp in el.xpath('.//input | .//select | .//textarea'): + try: + name = inp.attrib['name'] + except KeyError: + continue + + try: + if inp.attrib['type'] in ('checkbox', 'radio') and 'checked' not in inp.attrib: + continue + except KeyError: + pass + + try: + if inp.attrib['type'] == 'submit': + if self.submit_el is not None and inp is not self.submit_el: + continue + else: + submits += 1 + except KeyError: + pass + + if inp.tag == 'select': + options = inp.xpath('.//option[@selected]') + if len(options) == 0: + options = inp.xpath('.//option') + if len(options) == 0: + value = u'' + else: + value = options[0].attrib.get('value', options[0].text or u'') + else: + value = inp.attrib.get('value', inp.text or u'') + + self[name] = value + + if submits > 1: + warnings.warn('Form has more than one submit input, you should chose the correct one', FormSubmitWarning, stacklevel=3) + if self.submit_el is not None and self.submit_el is not False and submits == 0: + warnings.warn('Form had a submit element provided, but it was not found', FormSubmitWarning, stacklevel=3) + + + @property + def request(self): + """ + Get the Request object from the form. + """ + if self.method.lower() == 'get': + req = requests.Request(self.method, self.url, params=self) + else: + req = requests.Request(self.method, self.url, data=self) + req.headers.setdefault('Referer', self.page.url) + return req + + def submit(self, **kwargs): + """ + Submit the form and tell browser to be located to the new page. + """ + kwargs.setdefault('data_encoding', self.page.encoding) + return self.page.browser.location(self.request, **kwargs) + + +class CsvPage(Page): + DIALECT = 'excel' + FMTPARAMS = {} + ENCODING = 'utf-8' + NEWLINES_HACK = True + + """ + If True, will consider the first line as a header. + This means the rows will be also available as dictionnaries. + """ + HEADER = None + + def __init__(self, browser, response, *args, **kwargs): + super(CsvPage, self).__init__(browser, response, *args, **kwargs) + content = response.content + encoding = self.ENCODING + if encoding == 'utf-16le': + content = content.decode('utf-16le')[1:].encode('utf-8') + encoding = 'utf-8' + if self.NEWLINES_HACK: + content = content.replace('\r\n', '\n').replace('\r', '\n') + fp = BytesIO(content) + self.doc = self.parse(fp, encoding) + + def parse(self, data, encoding=None): + import csv + reader = csv.reader(data, dialect=self.DIALECT, **self.FMTPARAMS) + header = None + drows = [] + rows = [] + for i, row in enumerate(reader): + if self.HEADER and i+1 < self.HEADER: + continue + row = self.decode_row(row, encoding) + if header is None and self.HEADER: + header = row + else: + rows.append(row) + if header: + drow = {} + for i, cell in enumerate(row): + drow[header[i]] = cell + drows.append(drow) + return drows if header is not None else row + + def decode_row(self, row, encoding): + if encoding: + return [unicode(cell, encoding) for cell in row] + else: + return row + + +class JsonPage(Page): + def __init__(self, browser, response, *args, **kwargs): + super(JsonPage, self).__init__(browser, response, *args, **kwargs) + from weboob.tools.json import json + self.doc = json.loads(response.text) + + +class XMLPage(Page): + ENCODING = None + """ + Force a page encoding. + It is recommended to use None for autodetection. + """ + + def __init__(self, browser, response, *args, **kwargs): + super(XMLPage, self).__init__(browser, response, *args, **kwargs) + import lxml.etree as etree + parser = etree.XMLParser(encoding=self.ENCODING or response.encoding) + self.doc = etree.parse(BytesIO(response.content), parser) + + +class RawPage(Page): + def __init__(self, browser, response, *args, **kwargs): + super(RawPage, self).__init__(browser, response, *args, **kwargs) + self.doc = response.content + + +class HTMLPage(Page): + """ + HTML page. + """ + FORM_CLASS = Form + + ENCODING = None + """ + Force a page encoding. + It is recommended to use None for autodetection. + """ + + def __init__(self, browser, response, *args, **kwargs): + super(HTMLPage, self).__init__(browser, response, *args, **kwargs) + self.encoding = self.ENCODING or response.encoding + import lxml.html as html + parser = html.HTMLParser(encoding=self.encoding) + self.doc = html.parse(BytesIO(response.content), parser) + + def get_form(self, xpath='//form', name=None, nr=None, submit=None): + """ + Get a :class:`Form` object from a selector. + The form will be analyzed and its parameters extracted. + In the case there is more than one "submit" input, only one of + them should be chosen to generate the request. + + :param xpath: xpath string to select forms + :type xpath: :class:`str` + :param name: if supplied, select a form with the given name + :type name: :class:`str` + :param nr: if supplied, take the n+1 th selected form + :type nr: :class:`int` + :param submit: if supplied, xpath string to select the submit \ + element from the form + :type submit: :class:`str` + :rtype: :class:`Form` + :raises: :class:`FormNotFound` if no form is found + """ + i = 0 + for el in self.doc.xpath(xpath): + if name is not None and el.attrib.get('name', '') != name: + continue + if nr is not None and i != nr: + i += 1 + continue + + if isinstance(submit, basestring): + submit_el = el.xpath(submit)[0] + else: + submit_el = submit + + return self.FORM_CLASS(self, el, submit_el) + + raise FormNotFound() + + +class LoggedPage(object): + """ + A page that only logged users can reach. If we did not get a redirection + for this page, we are sure that the login is still active. + + Do not use this class for page we mixed content (logged/anonymous) or for + pages with a login form. + """ + logged = True diff --git a/weboob/browser/profiles.py b/weboob/browser/profiles.py new file mode 100644 index 0000000000000000000000000000000000000000..2d217892e3a91548b37abf139a6588ad70707800 --- /dev/null +++ b/weboob/browser/profiles.py @@ -0,0 +1,95 @@ +# -*- coding: utf-8 -*- + +# Copyright(C) 2012-2014 Laurent Bachelier +# +# This file is part of weboob. +# +# weboob is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# weboob is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with weboob. If not, see . + + +class Profile(object): + """ + A profile represents the way Browser should act. + Usually it is to mimic a real browser. + """ + + def setup_session(self, session): + """ + Change default headers, set up hooks, etc. + + Warning: Do not enable lzma, bzip or bzip2, sdch encodings + as python-requests does not support it yet. + Supported as of 2.2: gzip, deflate, compress. + In doubt, do not change the default Accept-Encoding header + of python-requests. + """ + raise NotImplementedError() + + +class Weboob(Profile): + """ + It's us! + Recommended for Weboob-friendly websites only. + """ + + def __init__(self, version): + self.version = version + + def setup_session(self, session): + session.headers['User-Agent'] = 'weboob/%s' % self.version + + +class Firefox(Profile): + """ + Try to mimic a specific version of Firefox. + Ideally, it should follow the current ESR Firefox: + https://www.mozilla.org/en-US/firefox/organizations/all.html + Do not change the Firefox version without checking the Gecko one! + """ + + def setup_session(self, session): + """ + Set up headers for a standard Firefox request + (except for DNT which isn't on by default but is a good idea). + + The goal is to be unidentifiable. + """ + # Replace all base requests headers + # https://developer.mozilla.org/en/Gecko_user_agent_string_reference + # https://bugzilla.mozilla.org/show_bug.cgi?id=572650 + session.headers = { + 'Accept-Language': 'en-us,en;q=0.5', + 'Accept-Encoding': 'gzip, deflate', + 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', + 'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Firefox/31.0', + 'DNT': '1'} + + +class Wget(Profile): + """ + Common alternative user agent. + Some websites will give you a version with less JavaScript. + Some others could ban you (after all, wget is not a real browser). + """ + def __init__(self, version='1.11.4'): + self.version = version + + def setup_session(self, session): + # Don't remove base headers, if websites want to block fake browsers, + # they will probably block any wget user agent anyway. + session.headers.update({ + 'Accept': '*/*', + 'User-Agent': 'Wget/%s' % self.version}) + + diff --git a/weboob/browser2/sessions.py b/weboob/browser/sessions.py similarity index 99% rename from weboob/browser2/sessions.py rename to weboob/browser/sessions.py index 3ee4757f09f6820db57dfc3ec06f5401f4b02219..8a0e40cb31ce9858208c1a7ca170f3c02f74908c 100644 --- a/weboob/browser2/sessions.py +++ b/weboob/browser/sessions.py @@ -18,7 +18,7 @@ # along with weboob. If not, see . # Inspired by: https://github.com/ross/requests-futures/blob/master/requests_futures/sessions.py -# XXX Licence issues ? +# XXX Licence issues? try: from concurrent.futures import ThreadPoolExecutor @@ -58,7 +58,6 @@ def merge_hooks(request_hooks, session_hooks, dict_class=OrderedDict): class WeboobSession(Session): - def prepare_request(self, request): """Constructs a :class:`PreparedRequest ` for transmission and returns it. The :class:`PreparedRequest` has settings @@ -99,8 +98,8 @@ def prepare_request(self, request): ) return p -class FuturesSession(WeboobSession): +class FuturesSession(WeboobSession): def __init__(self, executor=None, max_workers=2, *args, **kwargs): """Creates a FuturesSession diff --git a/weboob/browser/url.py b/weboob/browser/url.py new file mode 100644 index 0000000000000000000000000000000000000000..6f8ff1a047b2e838caba225596f8bf5636df23de --- /dev/null +++ b/weboob/browser/url.py @@ -0,0 +1,205 @@ +# -*- coding: utf-8 -*- + +# Copyright(C) 2014 Romain Bignon +# +# This file is part of weboob. +# +# weboob is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# weboob is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with weboob. If not, see . + +try: + from urllib.parse import unquote +except ImportError: + from urllib import unquote +import re +import requests + +from weboob.tools.regex_helper import normalize + + +class UrlNotResolvable(Exception): + """ + Raised when trying to locate on an URL instance which url pattern is not resolvable as a real url. + """ + + +class URL(object): + """ + A description of an URL on the PagesBrowser website. + + It takes one or several regexps to match urls, and an optional Page + class which is instancied by PagesBrowser.open if the page matches a regex. + """ + _creation_counter = 0 + + def __init__(self, *args): + self.urls = [] + self.klass = None + self.browser = None + for arg in args: + if isinstance(arg, basestring): + self.urls.append(arg) + if isinstance(arg, type): + self.klass = arg + + self._creation_counter = URL._creation_counter + URL._creation_counter += 1 + + def is_here(self, **kwargs): + """ + Returns True if the current page of browser matches this URL. + If arguments are provided, and only then, they are checked against the arguments + that were used to build the current page URL. + """ + assert self.klass is not None, "You can use this method only if there is a Page class handler." + + if len(kwargs): + params = self.match(self.build(**kwargs)).groupdict() + else: + params = None + + # XXX use unquote on current params values because if there are spaces + # or special characters in them, it is encoded only in but not in kwargs. + return self.browser.page and isinstance(self.browser.page, self.klass) \ + and (params is None or params == dict([(k,unquote(v)) for k,v in self.browser.page.params.iteritems()])) + + def stay_or_go(self, **kwargs): + """ + Request to go on this url only if we aren't already here. + + Arguments are optional parameters for url. + + >>> url = URL('http://exawple.org/(?P).html') + >>> url.stay_or_go(pagename='index') + """ + if self.is_here(**kwargs): + return self.browser.page + + return self.go(**kwargs) + + def go(self, params=None, data=None, **kwargs): + """ + Request to go on this url. + + Arguments are optional parameters for url. + + >>> url = URL('http://exawple.org/(?P).html') + >>> url.stay_or_go(pagename='index') + """ + r = self.browser.location(self.build(**kwargs), params=params, data=data) + return r.page or r + + def open(self, params=None, data=None, **kwargs): + """ + Request to open on this url. + + Arguments are optional parameters for url. + + :param data: POST data + :type url: str or dict or None + + >>> url = URL('http://exawple.org/(?P).html') + >>> url.open(pagename='index') + """ + r = self.browser.open(self.build(**kwargs), params=params, data=data) + return r.page or r + + def build(self, **kwargs): + """ + Build an url with the given arguments from URL's regexps. + + :param param: Query string parameters + + :rtype: :class:`str` + :raises: :class:`UrlNotResolvable` if unable to resolve a correct url with the given arguments. + """ + browser = kwargs.pop('browser', self.browser) + params = kwargs.pop('params', None) + patterns = [] + for url in self.urls: + patterns += normalize(url) + + for pattern, _ in patterns: + url = pattern + # only use full-name substitutions, to allow % in URLs + for kwkey in kwargs.keys(): # need to use keys() because of pop() + search = '%%(%s)s' % kwkey + if search in pattern: + url = url.replace(search, unicode(kwargs.pop(kwkey))) + # if there are named substitutions left, ignore pattern + if re.search('%\([A-z_]+\)s', url): + continue + # if not all kwargs were used + if len(kwargs): + continue + + url = browser.absurl(url, base=True) + if params: + p = requests.models.PreparedRequest() + p.prepare_url(url, params) + url = p.url + return url + + raise UrlNotResolvable('Unable to resolve URL with %r. Available are %s' % (kwargs, ', '.join([pattern for pattern, _ in patterns]))) + + def match(self, url, base=None): + """ + Check if the given url match this object. + """ + if base is None: + assert self.browser is not None + base = self.browser.BASEURL + + for regex in self.urls: + if not re.match(r'^\w+://.*', regex): + regex = re.escape(base).rstrip('/') + '/' + regex.lstrip('/') + m = re.match(regex, url) + if m: + return m + + def handle(self, response): + """ + Handle a HTTP response to get an instance of the klass if it matches. + """ + if self.klass is None: + return + + m = self.match(response.url) + if m: + page = self.klass(self.browser, response, m.groupdict()) + if hasattr(page, 'is_here'): + if callable(page.is_here): + if page.is_here(): + return page + else: + assert isinstance(page.is_here, basestring) + if page.doc.xpath(page.is_here): + return page + else: + return page + + def id2url(self, func): + r""" + Helper decorator to get an URL if the given first parameter is an ID. + """ + def inner(browser, id_or_url, *args, **kwargs): + if re.match('^https?://.*', id_or_url): + if not self.match(id_or_url, browser.BASEURL): + return + else: + id_or_url = self.build(id=id_or_url, browser=browser) + + return func(browser, id_or_url, *args, **kwargs) + return inner + + diff --git a/weboob/browser2/page.py b/weboob/browser2/page.py deleted file mode 100644 index a51a50b14193bc7825020e0d75a679bc342e2a70..0000000000000000000000000000000000000000 --- a/weboob/browser2/page.py +++ /dev/null @@ -1,716 +0,0 @@ -# -*- coding: utf-8 -*- - -# Copyright(C) 2014 Romain Bignon -# -# This file is part of weboob. -# -# weboob is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# weboob is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with weboob. If not, see . - -from __future__ import absolute_import - -try: - from urllib.parse import unquote -except ImportError: - from urllib import unquote -import re -import warnings -from copy import deepcopy -from io import BytesIO - -import requests - -from weboob.tools.ordereddict import OrderedDict -from weboob.tools.regex_helper import normalize -from weboob.tools.compat import basestring - -from weboob.tools.log import getLogger - -from .browser import DomainBrowser - - -class UrlNotResolvable(Exception): - """ - Raised when trying to locate on an URL instance which url pattern is not resolvable as a real url. - """ - - -class URL(object): - """ - A description of an URL on the PagesBrowser website. - - It takes one or several regexps to match urls, and an optional Page - class which is instancied by PagesBrowser.open if the page matches a regex. - """ - _creation_counter = 0 - - def __init__(self, *args): - self.urls = [] - self.klass = None - self.browser = None - for arg in args: - if isinstance(arg, basestring): - self.urls.append(arg) - if isinstance(arg, type): - self.klass = arg - - self._creation_counter = URL._creation_counter - URL._creation_counter += 1 - - def is_here(self, **kwargs): - """ - Returns True if the current page of browser matches this URL. - If arguments are provided, and only then, they are checked against the arguments - that were used to build the current page URL. - """ - assert self.klass is not None, "You can use this method only if there is a Page class handler." - - if len(kwargs): - params = self.match(self.build(**kwargs)).groupdict() - else: - params = None - - # XXX use unquote on current params values because if there are spaces - # or special characters in them, it is encoded only in but not in kwargs. - return self.browser.page and isinstance(self.browser.page, self.klass) \ - and (params is None or params == dict([(k,unquote(v)) for k,v in self.browser.page.params.iteritems()])) - - def stay_or_go(self, **kwargs): - """ - Request to go on this url only if we aren't already here. - - Arguments are optional parameters for url. - - >>> url = URL('http://exawple.org/(?P).html') - >>> url.stay_or_go(pagename='index') - """ - if self.is_here(**kwargs): - return self.browser.page - - return self.go(**kwargs) - - def go(self, params=None, data=None, **kwargs): - """ - Request to go on this url. - - Arguments are optional parameters for url. - - >>> url = URL('http://exawple.org/(?P).html') - >>> url.stay_or_go(pagename='index') - """ - r = self.browser.location(self.build(**kwargs), params=params, data=data) - return r.page or r - - def open(self, params=None, data=None, **kwargs): - """ - Request to open on this url. - - Arguments are optional parameters for url. - - :param data: POST data - :type url: str or dict or None - - >>> url = URL('http://exawple.org/(?P).html') - >>> url.open(pagename='index') - """ - r = self.browser.open(self.build(**kwargs), params=params, data=data) - return r.page or r - - def build(self, **kwargs): - """ - Build an url with the given arguments from URL's regexps. - - :param param: Query string parameters - - :rtype: :class:`str` - :raises: :class:`UrlNotResolvable` if unable to resolve a correct url with the given arguments. - """ - browser = kwargs.pop('browser', self.browser) - params = kwargs.pop('params', None) - patterns = [] - for url in self.urls: - patterns += normalize(url) - - for pattern, _ in patterns: - url = pattern - # only use full-name substitutions, to allow % in URLs - for kwkey in kwargs.keys(): # need to use keys() because of pop() - search = '%%(%s)s' % kwkey - if search in pattern: - url = url.replace(search, unicode(kwargs.pop(kwkey))) - # if there are named substitutions left, ignore pattern - if re.search('%\([A-z_]+\)s', url): - continue - # if not all kwargs were used - if len(kwargs): - continue - - url = browser.absurl(url, base=True) - if params: - p = requests.models.PreparedRequest() - p.prepare_url(url, params) - url = p.url - return url - - raise UrlNotResolvable('Unable to resolve URL with %r. Available are %s' % (kwargs, ', '.join([pattern for pattern, _ in patterns]))) - - def match(self, url, base=None): - """ - Check if the given url match this object. - """ - if base is None: - assert self.browser is not None - base = self.browser.BASEURL - - for regex in self.urls: - if not re.match(r'^\w+://.*', regex): - regex = re.escape(base).rstrip('/') + '/' + regex.lstrip('/') - m = re.match(regex, url) - if m: - return m - - def handle(self, response): - """ - Handle a HTTP response to get an instance of the klass if it matches. - """ - if self.klass is None: - return - - m = self.match(response.url) - if m: - page = self.klass(self.browser, response, m.groupdict()) - if hasattr(page, 'is_here'): - if callable(page.is_here): - if page.is_here(): - return page - else: - assert isinstance(page.is_here, basestring) - if page.doc.xpath(page.is_here): - return page - else: - return page - - def id2url(self, func): - r""" - Helper decorator to get an URL if the given first parameter is an ID. - """ - def inner(browser, id_or_url, *args, **kwargs): - if re.match('^https?://.*', id_or_url): - if not self.match(id_or_url, browser.BASEURL): - return - else: - id_or_url = self.build(id=id_or_url, browser=browser) - - return func(browser, id_or_url, *args, **kwargs) - return inner - - -class _PagesBrowserMeta(type): - """ - Private meta-class used to keep order of URLs instances of PagesBrowser. - """ - def __new__(mcs, name, bases, attrs): - urls = [(url_name, attrs.pop(url_name)) for url_name, obj in attrs.items() if isinstance(obj, URL)] - urls.sort(key=lambda x: x[1]._creation_counter) - - new_class = super(_PagesBrowserMeta, mcs).__new__(mcs, name, bases, attrs) - if new_class._urls is None: - new_class._urls = OrderedDict() - else: - new_class._urls = deepcopy(new_class._urls) - new_class._urls.update(urls) - return new_class - -class PagesBrowser(DomainBrowser): - r""" - A browser which works pages and keep state of navigation. - - To use it, you have to derive it and to create URL objects as class - attributes. When open() or location() are called, if the url matches - one of URL objects, it returns a Page object. In case of location(), it - stores it in self.page. - - Example: - - >>> class HomePage(Page): - ... pass - ... - >>> class ListPage(Page): - ... pass - ... - >>> class MyBrowser(PagesBrowser): - ... BASEURL = 'http://example.org' - ... home = URL('/(index\.html)?', HomePage) - ... list = URL('/list\.html', ListPage) - ... - - You can then use URL instances to go on pages. - """ - - - _urls = None - __metaclass__ = _PagesBrowserMeta - - def __getattr__(self, name): - if self._urls is not None and name in self._urls: - return self._urls[name] - else: - raise AttributeError("'%s' object has no attribute '%s'" % ( - self.__class__.__name__, name)) - - def __init__(self, *args, **kwargs): - super(PagesBrowser, self).__init__(*args, **kwargs) - - self.page = None - self._urls = deepcopy(self._urls) - for url in self._urls.itervalues(): - url.browser = self - - def open(self, *args, **kwargs): - """ - Same method than - :meth:`weboob.browser2.browser.DomainBrowser.open`, but the - response contains an attribute `page` if the url matches any - :class:`URL` object. - """ - - callback = kwargs.pop('callback', lambda response: response) - - # Have to define a callback to seamlessly process synchronous and - # asynchronous requests, see :meth:`Browser.open` and its `async` - # and `callback` params. - def internal_callback(response): - # Try to handle the response page with an URL instance. - response.page = None - for url in self._urls.itervalues(): - page = url.handle(response) - if page is not None: - self.logger.debug('Handle %s with %s' % (response.url, page.__class__.__name__)) - response.page = page - break - - if response.page is None: - self.logger.debug('Unable to handle %s' % response.url) - - return callback(response) - - return super(PagesBrowser, self).open(callback=internal_callback, *args, **kwargs) - - def location(self, *args, **kwargs): - """ - Same method than - :meth:`weboob.browser2.browser.Browser.location`, but if the - url matches any :class:`URL` object, an attribute `page` is added to - response, and the attribute :attr:`PagesBrowser.page` is set. - """ - if self.page is not None: - # Call leave hook. - self.page.on_leave() - - response = self.open(*args, **kwargs) - - self.response = response - self.page = response.page - self.url = response.url - - if self.page is not None: - # Call load hook. - self.page.on_load() - - # Returns self.response in case on_load recalls location() - return self.response - - def pagination(self, func, *args, **kwargs): - r""" - This helper function can be used to handle pagination pages easily. - - When the called function raises an exception :class:`NextPage`, it goes - on the wanted page and recall the function. - - :class:`NextPage` constructor can take an url or a Request object. - - >>> class Page(HTMLPage): - ... def iter_values(self): - ... for el in self.doc.xpath('//li'): - ... yield el.text - ... for next in self.doc.xpath('//a'): - ... raise NextPage(next.attrib['href']) - ... - >>> class Browser(PagesBrowser): - ... BASEURL = 'http://people.symlink.me' - ... list = URL('/~rom1/projects/weboob/list-(?P\d+).html', Page) - ... - >>> b = Browser() - >>> b.list.go(pagenum=1) - >>> list(b.pagination(lambda: b.page.iter_values())) - ['One', 'Two', 'Three', 'Four'] - """ - while True: - try: - for r in func(*args, **kwargs): - yield r - except NextPage as e: - self.location(e.request) - else: - return - -def pagination(func): - r""" - This helper decorator can be used to handle pagination pages easily. - - When the called function raises an exception :class:`NextPage`, it goes on - the wanted page and recall the function. - - :class:`NextPage` constructor can take an url or a Request object. - - >>> class Page(HTMLPage): - ... @pagination - ... def iter_values(self): - ... for el in self.doc.xpath('//li'): - ... yield el.text - ... for next in self.doc.xpath('//a'): - ... raise NextPage(next.attrib['href']) - ... - >>> class Browser(PagesBrowser): - ... BASEURL = 'http://people.symlink.me' - ... list = URL('/~rom1/projects/weboob/list-(?P\d+).html', Page) - ... - >>> b = Browser() - >>> b.list.go(pagenum=1) - >>> list(b.page.iter_values()) - ['One', 'Two', 'Three', 'Four'] - """ - def inner(page, *args, **kwargs): - while True: - try: - for r in func(page, *args, **kwargs): - yield r - except NextPage as e: - result = page.browser.location(e.request) - page = result.page - else: - return - - return inner - -class NextPage(Exception): - """ - Exception used for example in a Page to tell PagesBrowser.pagination to - go on the next page. - - See :meth:`PagesBrowser.pagination` or decorator :func:`pagination`. - """ - def __init__(self, request): - super(NextPage, self).__init__() - self.request = request - - -def need_login(func): - """ - Decorator used to require to be logged to access to this function. - """ - def inner(browser, *args, **kwargs): - if browser.page is None or not browser.page.logged: - browser.do_login() - return func(browser, *args, **kwargs) - - return inner - - -class LoginBrowser(PagesBrowser): - """ - A browser which supports login. - """ - def __init__(self, username, password, *args, **kwargs): - super(LoginBrowser, self).__init__(*args, **kwargs) - self.username = username - self.password = password - - def do_login(self): - """ - Abstract method to implement to login on website. - - It is call when a login is needed. - """ - raise NotImplementedError() - - -class Page(object): - """ - Base page. - """ - logged = False - - def __init__(self, browser, response, params=None): - self.browser = browser - self.logger = getLogger(self.__class__.__name__.lower(), browser.logger) - self.response = response - self.url = self.response.url - self.params = params - - def on_load(self): - """ - Event called when browser loads this page. - """ - - def on_leave(self): - """ - Event called when browser leaves this page. - """ - -class FormNotFound(Exception): - """ - Raised when :meth:`HTMLPage.get_form` can't find a form. - """ - -class FormSubmitWarning(UserWarning): - """ - A form has more than one submit element selected, and will likely - generate an invalid request. - """ - -class Form(OrderedDict): - """ - Represents a form of an HTML page. - - It is used as a dict with pre-filled values from HTML. You can set new - values as strings by setting an item value. - - submit_el allows you to only consider one submit button (which is what - browsers do). If set to None, it takes all of them, and if set to False, - it takes none. - """ - - def __init__(self, page, el, submit_el=None): - super(Form, self).__init__() - self.page = page - self.el = el - self.submit_el = submit_el - self.method = el.attrib.get('method', 'GET') - self.url = el.attrib.get('action', page.url) - self.name = el.attrib.get('name', '') - submits = 0 - - for inp in el.xpath('.//input | .//select | .//textarea'): - try: - name = inp.attrib['name'] - except KeyError: - continue - - try: - if inp.attrib['type'] in ('checkbox', 'radio') and 'checked' not in inp.attrib: - continue - except KeyError: - pass - - try: - if inp.attrib['type'] == 'submit': - if self.submit_el is not None and inp is not self.submit_el: - continue - else: - submits += 1 - except KeyError: - pass - - if inp.tag == 'select': - options = inp.xpath('.//option[@selected]') - if len(options) == 0: - options = inp.xpath('.//option') - if len(options) == 0: - value = u'' - else: - value = options[0].attrib.get('value', options[0].text or u'') - else: - value = inp.attrib.get('value', inp.text or u'') - - self[name] = value - - if submits > 1: - warnings.warn('Form has more than one submit input, you should chose the correct one', FormSubmitWarning, stacklevel=3) - if self.submit_el is not None and self.submit_el is not False and submits == 0: - warnings.warn('Form had a submit element provided, but it was not found', FormSubmitWarning, stacklevel=3) - - - @property - def request(self): - """ - Get the Request object from the form. - """ - if self.method.lower() == 'get': - req = requests.Request(self.method, self.url, params=self) - else: - req = requests.Request(self.method, self.url, data=self) - req.headers.setdefault('Referer', self.page.url) - return req - - def submit(self, **kwargs): - """ - Submit the form and tell browser to be located to the new page. - """ - kwargs.setdefault('data_encoding', self.page.encoding) - return self.page.browser.location(self.request, **kwargs) - - -class CsvPage(Page): - DIALECT = 'excel' - FMTPARAMS = {} - ENCODING = 'utf-8' - NEWLINES_HACK = True - - """ - If True, will consider the first line as a header. - This means the rows will be also available as dictionnaries. - """ - HEADER = None - - def __init__(self, browser, response, *args, **kwargs): - super(CsvPage, self).__init__(browser, response, *args, **kwargs) - content = response.content - encoding = self.ENCODING - if encoding == 'utf-16le': - content = content.decode('utf-16le')[1:].encode('utf-8') - encoding = 'utf-8' - if self.NEWLINES_HACK: - content = content.replace('\r\n', '\n').replace('\r', '\n') - fp = BytesIO(content) - self.doc = self.parse(fp, encoding) - - def parse(self, data, encoding=None): - import csv - reader = csv.reader(data, dialect=self.DIALECT, **self.FMTPARAMS) - header = None - drows = [] - rows = [] - for i, row in enumerate(reader): - if self.HEADER and i+1 < self.HEADER: - continue - row = self.decode_row(row, encoding) - if header is None and self.HEADER: - header = row - else: - rows.append(row) - if header: - drow = {} - for i, cell in enumerate(row): - drow[header[i]] = cell - drows.append(drow) - return drows if header is not None else row - - def decode_row(self, row, encoding): - if encoding: - return [unicode(cell, encoding) for cell in row] - else: - return row - - -class JsonPage(Page): - def __init__(self, browser, response, *args, **kwargs): - super(JsonPage, self).__init__(browser, response, *args, **kwargs) - from weboob.tools.json import json - self.doc = json.loads(response.text) - - -class XMLPage(Page): - ENCODING = None - """ - Force a page encoding. - It is recommended to use None for autodetection. - """ - - def __init__(self, browser, response, *args, **kwargs): - super(XMLPage, self).__init__(browser, response, *args, **kwargs) - import lxml.etree as etree - parser = etree.XMLParser(encoding=self.ENCODING or response.encoding) - self.doc = etree.parse(BytesIO(response.content), parser) - - -class RawPage(Page): - def __init__(self, browser, response, *args, **kwargs): - super(RawPage, self).__init__(browser, response, *args, **kwargs) - self.doc = response.content - - -class HTMLPage(Page): - """ - HTML page. - """ - FORM_CLASS = Form - - ENCODING = None - """ - Force a page encoding. - It is recommended to use None for autodetection. - """ - - def __init__(self, browser, response, *args, **kwargs): - super(HTMLPage, self).__init__(browser, response, *args, **kwargs) - self.encoding = self.ENCODING or response.encoding - import lxml.html as html - parser = html.HTMLParser(encoding=self.encoding) - self.doc = html.parse(BytesIO(response.content), parser) - - def get_form(self, xpath='//form', name=None, nr=None, submit=None): - """ - Get a :class:`Form` object from a selector. - The form will be analyzed and its parameters extracted. - In the case there is more than one "submit" input, only one of - them should be chosen to generate the request. - - :param xpath: xpath string to select forms - :type xpath: :class:`str` - :param name: if supplied, select a form with the given name - :type name: :class:`str` - :param nr: if supplied, take the n+1 th selected form - :type nr: :class:`int` - :param submit: if supplied, xpath string to select the submit \ - element from the form - :type submit: :class:`str` - :rtype: :class:`Form` - :raises: :class:`FormNotFound` if no form is found - """ - i = 0 - for el in self.doc.xpath(xpath): - if name is not None and el.attrib.get('name', '') != name: - continue - if nr is not None and i != nr: - i += 1 - continue - - if isinstance(submit, basestring): - submit_el = el.xpath(submit)[0] - else: - submit_el = submit - - return self.FORM_CLASS(self, el, submit_el) - - raise FormNotFound() - - -def method(klass): - """ - Class-decorator to call it as a method. - """ - def inner(self, *args, **kwargs): - return klass(self)(*args, **kwargs) - return inner - - -class LoggedPage(object): - """ - A page that only logged users can reach. If we did not get a redirection - for this page, we are sure that the login is still active. - - Do not use this class for page we mixed content (logged/anonymous) or for - pages with a login form. - """ - logged = True diff --git a/weboob/core/repositories.py b/weboob/core/repositories.py index 7720030fd4bb8badb260a8d438ba861f43991afa..c7f6d0343c0b338f616ec9cc1ff21444f3ffeedb 100644 --- a/weboob/core/repositories.py +++ b/weboob/core/repositories.py @@ -31,7 +31,7 @@ from compileall import compile_dir from io import BytesIO -from weboob.core.exceptions import BrowserHTTPError, BrowserHTTPNotFound +from weboob.exceptions import BrowserHTTPError, BrowserHTTPNotFound from .modules import LoadedModule from weboob.tools.log import getLogger from weboob.tools.misc import to_unicode @@ -442,7 +442,8 @@ def __init__(self, workdir, datadir, version): self.load() def load_browser(self): - from weboob.browser2.browser import Browser, Weboob as WeboobProfile + from weboob.browser.browsers import Browser + from weboob.browser.profiles import Weboob as WeboobProfile class WeboobBrowser(Browser): PROFILE = WeboobProfile(self.version) if self.browser is None: diff --git a/weboob/deprecated/__init__.py b/weboob/deprecated/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/weboob/tools/browser/__init__.py b/weboob/deprecated/browser/__init__.py similarity index 93% rename from weboob/tools/browser/__init__.py rename to weboob/deprecated/browser/__init__.py index e3122269137bdd3580641cd0ea7278d60f464458..66a26125a1845dda4ff1fa3a6f8bfe2bcff2261d 100644 --- a/weboob/tools/browser/__init__.py +++ b/weboob/deprecated/browser/__init__.py @@ -18,7 +18,7 @@ # along with weboob. If not, see . -from weboob.tools.browser.browser import BrowserIncorrectPassword, BrowserBanned, \ +from weboob.deprecated.browser.browser import BrowserIncorrectPassword, BrowserBanned, \ BrowserUnavailable, BrowserRetry, \ BrowserHTTPNotFound, BrowserHTTPError, \ Page, Browser, BrokenPageError, \ diff --git a/weboob/tools/browser/browser.py b/weboob/deprecated/browser/browser.py similarity index 98% rename from weboob/tools/browser/browser.py rename to weboob/deprecated/browser/browser.py index a2d0817d82bf769efa16f2162df638888e2ca5b1..3fdc8f9abae6a4f41492dbc68a9f8aed8e6f7485 100644 --- a/weboob/tools/browser/browser.py +++ b/weboob/deprecated/browser/browser.py @@ -49,12 +49,12 @@ from gzip import GzipFile import warnings -from weboob.core.exceptions import BrowserUnavailable, BrowserIncorrectPassword, BrowserPasswordExpired, BrowserForbidden, BrowserBanned, BrowserHTTPNotFound, BrowserHTTPError, FormFieldConversionWarning, BrowserSSLError +from weboob.exceptions import BrowserUnavailable, BrowserIncorrectPassword, BrowserPasswordExpired, BrowserForbidden, BrowserBanned, BrowserHTTPNotFound, BrowserHTTPError, FormFieldConversionWarning, BrowserSSLError from weboob.tools.decorators import retry from weboob.tools.log import getLogger -from weboob.tools.mech import ClientForm +from weboob.deprecated.mech import ClientForm ControlNotFoundError = ClientForm.ControlNotFoundError -from weboob.tools.parsers import get_parser +from weboob.deprecated.browser.parsers import get_parser __all__ = ['BrowserIncorrectPassword', 'BrowserForbidden', 'BrowserBanned', 'BrowserUnavailable', 'BrowserRetry', 'BrowserPasswordExpired', 'BrowserHTTPNotFound', 'BrowserHTTPError', 'BrokenPageError', 'Page', @@ -134,7 +134,7 @@ class StandardBrowser(mechanize.Browser): :param firefox_cookies: path to cookies sqlite file :type firefox_cookies: str :param parser: parser to use on HTML files - :type parser: :class:`weboob.tools.parsers.iparser.IParser` + :type parser: :class:`weboob.deprecated.browser.parsers.iparser.IParser` :param history: history manager; default value is an object which does not keep history :type history: object @@ -434,7 +434,7 @@ class Browser(StandardBrowser): :param firefox_cookies: path to cookies sqlite file :type firefox_cookies: str :param parser: parser to use on HTML files - :type parser: :class:`weboob.tools.parsers.iparser.IParser` + :type parser: :class:`weboob.deprecated.browser.parsers.iparser.IParser` :param history: history manager; default value is an object which does not keep history :type history: object diff --git a/weboob/tools/browser/decorators.py b/weboob/deprecated/browser/decorators.py similarity index 100% rename from weboob/tools/browser/decorators.py rename to weboob/deprecated/browser/decorators.py diff --git a/weboob/tools/browser/firefox_cookies.py b/weboob/deprecated/browser/firefox_cookies.py similarity index 100% rename from weboob/tools/browser/firefox_cookies.py rename to weboob/deprecated/browser/firefox_cookies.py diff --git a/weboob/tools/parsers/__init__.py b/weboob/deprecated/browser/parsers/__init__.py similarity index 100% rename from weboob/tools/parsers/__init__.py rename to weboob/deprecated/browser/parsers/__init__.py diff --git a/weboob/tools/parsers/csvparser.py b/weboob/deprecated/browser/parsers/csvparser.py similarity index 100% rename from weboob/tools/parsers/csvparser.py rename to weboob/deprecated/browser/parsers/csvparser.py diff --git a/weboob/tools/parsers/iparser.py b/weboob/deprecated/browser/parsers/iparser.py similarity index 100% rename from weboob/tools/parsers/iparser.py rename to weboob/deprecated/browser/parsers/iparser.py diff --git a/weboob/tools/parsers/jsonparser.py b/weboob/deprecated/browser/parsers/jsonparser.py similarity index 100% rename from weboob/tools/parsers/jsonparser.py rename to weboob/deprecated/browser/parsers/jsonparser.py diff --git a/weboob/tools/parsers/lxmlparser.py b/weboob/deprecated/browser/parsers/lxmlparser.py similarity index 97% rename from weboob/tools/parsers/lxmlparser.py rename to weboob/deprecated/browser/parsers/lxmlparser.py index f2449cbf8aa5766576557f6abbfeec46522bb37e..b5e13fa24538ec43f6bd8470fbffc4af9e2229c9 100644 --- a/weboob/tools/parsers/lxmlparser.py +++ b/weboob/deprecated/browser/parsers/lxmlparser.py @@ -64,7 +64,7 @@ def select(cls, element, selector, nb=None, method='cssselect', **kwargs): """ Select one or many elements from an element, using lxml cssselect by default. - Raises :class:`weboob.tools.browser.browser.BrokenPageError` if not found. + Raises :class:`weboob.deprecated.browser.browser.BrokenPageError` if not found. :param element: element on which to apply selector :type element: object diff --git a/weboob/tools/parsers/lxmlsoupparser.py b/weboob/deprecated/browser/parsers/lxmlsoupparser.py similarity index 100% rename from weboob/tools/parsers/lxmlsoupparser.py rename to weboob/deprecated/browser/parsers/lxmlsoupparser.py diff --git a/weboob/tools/mech.py b/weboob/deprecated/mech.py similarity index 100% rename from weboob/tools/mech.py rename to weboob/deprecated/mech.py diff --git a/weboob/core/exceptions.py b/weboob/exceptions.py similarity index 100% rename from weboob/core/exceptions.py rename to weboob/exceptions.py diff --git a/weboob/tools/application/base.py b/weboob/tools/application/base.py index b8e083fb6c082253bb551bc12c0fdf2f8dee79c2..fadf72c9c7122019bd79f1fe539d127aabc2a19d 100644 --- a/weboob/tools/application/base.py +++ b/weboob/tools/application/base.py @@ -32,7 +32,7 @@ from weboob.core import Weboob, CallErrors from weboob.core.backendscfg import BackendsConfig from weboob.tools.config.iconfig import ConfigError -from weboob.core.exceptions import FormFieldConversionWarning +from weboob.exceptions import FormFieldConversionWarning from weboob.tools.log import createColoredFormatter, getLogger, DebugFilter, settings as log_settings from weboob.tools.misc import to_unicode from .results import ResultsConditionError diff --git a/weboob/tools/application/console.py b/weboob/tools/application/console.py index 37963a30ba576a3e4f733a92b6a259a45e119249..080a13839dfee9d482bade5d4bb0a447fd748496 100644 --- a/weboob/tools/application/console.py +++ b/weboob/tools/application/console.py @@ -32,7 +32,7 @@ from weboob.core.backendscfg import BackendAlreadyExists from weboob.core.modules import ModuleLoadError from weboob.core.repositories import ModuleInstallError -from weboob.core.exceptions import BrowserUnavailable, BrowserIncorrectPassword, BrowserForbidden, BrowserSSLError +from weboob.exceptions import BrowserUnavailable, BrowserIncorrectPassword, BrowserForbidden, BrowserSSLError from weboob.tools.value import Value, ValueBool, ValueFloat, ValueInt, ValueBackendPassword from weboob.tools.misc import to_unicode from weboob.tools.ordereddict import OrderedDict diff --git a/weboob/tools/application/qt/qt.py b/weboob/tools/application/qt/qt.py index 58d3b1df299fa1b0ef22bc50a82fd857c405a7e3..11d2d2b0a8cb9ab6e8c3d43c3b83ca9568f1a9b3 100644 --- a/weboob/tools/application/qt/qt.py +++ b/weboob/tools/application/qt/qt.py @@ -34,7 +34,7 @@ from weboob.core.scheduler import IScheduler from weboob.core.repositories import ModuleInstallError from weboob.tools.config.iconfig import ConfigError -from weboob.core.exceptions import BrowserUnavailable, BrowserIncorrectPassword, BrowserForbidden +from weboob.exceptions import BrowserUnavailable, BrowserIncorrectPassword, BrowserForbidden from weboob.tools.value import ValueInt, ValueBool, ValueBackendPassword from weboob.tools.misc import to_unicode from weboob.capabilities import UserError diff --git a/weboob/tools/capabilities/bank/transactions.py b/weboob/tools/capabilities/bank/transactions.py index 81db9e006269a2f0f021e4874bd23808acba155c..d73c9d619384d4ded04401278f1984d68d1c112b 100644 --- a/weboob/tools/capabilities/bank/transactions.py +++ b/weboob/tools/capabilities/bank/transactions.py @@ -27,9 +27,9 @@ from weboob.tools.misc import to_unicode from weboob.tools.log import getLogger -from weboob.core.exceptions import ParseError -from weboob.browser2.elements import TableElement, ItemElement -from weboob.browser2.filters.standard import Filter, CleanText, CleanDecimal, TableCell +from weboob.exceptions import ParseError +from weboob.browser.elements import TableElement, ItemElement +from weboob.browser.filters.standard import Filter, CleanText, CleanDecimal, TableCell __all__ = ['FrenchTransaction', 'AmericanTransaction'] diff --git a/weboob/tools/capabilities/gallery/genericcomicreader.py b/weboob/tools/capabilities/gallery/genericcomicreader.py index a5d8de85e07ce19bb8bc4de7f1be49bebbc00ea0..a872ed2bd48ba942ae43bbc7065e7db8d1d95f14 100644 --- a/weboob/tools/capabilities/gallery/genericcomicreader.py +++ b/weboob/tools/capabilities/gallery/genericcomicreader.py @@ -23,7 +23,7 @@ from weboob.capabilities.gallery import CapGallery, BaseGallery, BaseImage from weboob.tools.backend import Module -from weboob.tools.browser import Browser, Page +from weboob.deprecated.browser import Browser, Page __all__ = ['GenericComicReaderModule'] diff --git a/weboob/tools/capabilities/messages/genericArticle.py b/weboob/tools/capabilities/messages/genericArticle.py index 019d384bf525bb466db847f2304353b56091532c..3c079ef9f1e723f18a8976b4021eaed2546ce888 100644 --- a/weboob/tools/capabilities/messages/genericArticle.py +++ b/weboob/tools/capabilities/messages/genericArticle.py @@ -17,8 +17,8 @@ # You should have received a copy of the GNU Affero General Public License # along with weboob. If not, see . -from weboob.tools.browser import Page -from weboob.tools.browser import BrokenPageError +from weboob.deprecated.browser import Page +from weboob.deprecated.browser import BrokenPageError from lxml.etree import Comment