diff --git a/contrib/hds/export.py b/contrib/hds/export.py
index a13d6d06b9a5e048cd547fff6bfc165b541570e3..b2b7a117982f62c512caade3ef2d7ff6eb6b3623 100755
--- a/contrib/hds/export.py
+++ b/contrib/hds/export.py
@@ -23,23 +23,35 @@
except ImportError, e:
from pysqlite2 import dbapi2 as sqlite
+from weboob.core import Weboob
+from weboob.core.modules import ModuleLoadError
import sys
import logging
level = logging.DEBUG
logging.basicConfig(stream=sys.stdout, level=level)
-from weboob.backends.hds.browser import HDSBrowser
-
def main(filename):
+ weboob = Weboob()
+ try:
+ hds = weboob.modules_loader.load_module('hds')
+ except ModuleLoadError, e:
+ print >>sys.stderr, 'Unable to load "hds" module: %s' % e
+ return 1
+
try:
db = sqlite.connect(database=filename, timeout=10.0)
except sqlite.OperationalError, err:
- print 'Unable to open %s database: %s' % (filename, err)
+ print >>sys.stderr, 'Unable to open %s database: %s' % (filename, err)
return 1
sys.stdout.write('Reading database... ')
sys.stdout.flush()
- results = db.execute('SELECT id, author FROM stories')
+ try:
+ results = db.execute('SELECT id, author FROM stories')
+ except sqlite.OperationalError, err:
+ print >>sys.stderr, 'fail!\nUnable to read database: %s' % err
+ return 1
+
stored = set()
authors = set()
for r in results:
@@ -48,7 +60,7 @@ def main(filename):
stored_authors = set([s[0] for s in db.execute('SELECT name FROM authors')])
sys.stdout.write('ok\n')
- br = HDSBrowser()
+ br = hds.browser.HDSBrowser()
to_fetch = set()
sys.stdout.write('Getting stories list from website... ')
sys.stdout.flush()
diff --git a/weboob/backends/__init__.py b/modules/__init__.py
similarity index 100%
rename from weboob/backends/__init__.py
rename to modules/__init__.py
diff --git a/weboob/backends/arte/__init__.py b/modules/arte/__init__.py
similarity index 100%
rename from weboob/backends/arte/__init__.py
rename to modules/arte/__init__.py
diff --git a/weboob/backends/arte/backend.py b/modules/arte/backend.py
similarity index 100%
rename from weboob/backends/arte/backend.py
rename to modules/arte/backend.py
diff --git a/weboob/backends/arte/browser.py b/modules/arte/browser.py
similarity index 100%
rename from weboob/backends/arte/browser.py
rename to modules/arte/browser.py
diff --git a/icons/arte.png b/modules/arte/favicon.png
similarity index 100%
rename from icons/arte.png
rename to modules/arte/favicon.png
diff --git a/weboob/backends/arte/pages.py b/modules/arte/pages.py
similarity index 100%
rename from weboob/backends/arte/pages.py
rename to modules/arte/pages.py
diff --git a/weboob/backends/arte/test.py b/modules/arte/test.py
similarity index 100%
rename from weboob/backends/arte/test.py
rename to modules/arte/test.py
diff --git a/weboob/backends/arte/video.py b/modules/arte/video.py
similarity index 100%
rename from weboob/backends/arte/video.py
rename to modules/arte/video.py
diff --git a/weboob/backends/aum/API.txt b/modules/aum/API.txt
similarity index 100%
rename from weboob/backends/aum/API.txt
rename to modules/aum/API.txt
diff --git a/weboob/backends/aum/__init__.py b/modules/aum/__init__.py
similarity index 100%
rename from weboob/backends/aum/__init__.py
rename to modules/aum/__init__.py
diff --git a/weboob/backends/aum/antispam.py b/modules/aum/antispam.py
similarity index 100%
rename from weboob/backends/aum/antispam.py
rename to modules/aum/antispam.py
diff --git a/weboob/backends/aum/backend.py b/modules/aum/backend.py
similarity index 100%
rename from weboob/backends/aum/backend.py
rename to modules/aum/backend.py
diff --git a/weboob/backends/aum/browser.py b/modules/aum/browser.py
similarity index 100%
rename from weboob/backends/aum/browser.py
rename to modules/aum/browser.py
diff --git a/weboob/backends/aum/captcha.py b/modules/aum/captcha.py
similarity index 99%
rename from weboob/backends/aum/captcha.py
rename to modules/aum/captcha.py
index 3ec8d2210b043792d42d98b9d0046b28ba528bf3..c980608859952bad6a3312603eec463068df8296 100644
--- a/weboob/backends/aum/captcha.py
+++ b/modules/aum/captcha.py
@@ -157,7 +157,7 @@ def __init__(self):
self.hash = {}
def process(self):
- from weboob.backends.aum.browser import AuMBrowser
+ from aum.browser import AuMBrowser
browser = AuMBrowser('')
browser.openurl('/register2.php')
c = Captcha(browser.openurl('/captcha.php'))
diff --git a/weboob/backends/aum/contact.py b/modules/aum/contact.py
similarity index 100%
rename from weboob/backends/aum/contact.py
rename to modules/aum/contact.py
diff --git a/icons/aum.png b/modules/aum/favicon.png
similarity index 100%
rename from icons/aum.png
rename to modules/aum/favicon.png
diff --git a/weboob/backends/aum/optim/__init__.py b/modules/aum/optim/__init__.py
similarity index 100%
rename from weboob/backends/aum/optim/__init__.py
rename to modules/aum/optim/__init__.py
diff --git a/weboob/backends/aum/optim/priority_connection.py b/modules/aum/optim/priority_connection.py
similarity index 97%
rename from weboob/backends/aum/optim/priority_connection.py
rename to modules/aum/optim/priority_connection.py
index 2bf13642afd06f8b399c4afd058408382f5df7da..d88844c78bd1da31596b948a007e8f7561105b53 100644
--- a/weboob/backends/aum/optim/priority_connection.py
+++ b/modules/aum/optim/priority_connection.py
@@ -28,9 +28,9 @@
from weboob.tools.log import getLogger
from weboob.tools.value import Value, ValuesDict, ValueInt
-from weboob.backends.aum.captcha import CaptchaError
-from weboob.backends.aum.exceptions import AdopteWait, AdopteBanned
-from weboob.backends.aum.browser import AuMBrowser
+from aum.captcha import CaptchaError
+from aum.exceptions import AdopteWait, AdopteBanned
+from aum.browser import AuMBrowser
__all__ = ['PriorityConnection']
diff --git a/weboob/backends/aum/optim/profiles_walker.py b/modules/aum/optim/profiles_walker.py
similarity index 100%
rename from weboob/backends/aum/optim/profiles_walker.py
rename to modules/aum/optim/profiles_walker.py
diff --git a/weboob/backends/aum/optim/queries_queue.py b/modules/aum/optim/queries_queue.py
similarity index 100%
rename from weboob/backends/aum/optim/queries_queue.py
rename to modules/aum/optim/queries_queue.py
diff --git a/weboob/backends/aum/optim/visibility.py b/modules/aum/optim/visibility.py
similarity index 100%
rename from weboob/backends/aum/optim/visibility.py
rename to modules/aum/optim/visibility.py
diff --git a/weboob/backends/aum/test.py b/modules/aum/test.py
similarity index 100%
rename from weboob/backends/aum/test.py
rename to modules/aum/test.py
diff --git a/weboob/backends/batoto/__init__.py b/modules/batoto/__init__.py
similarity index 100%
rename from weboob/backends/batoto/__init__.py
rename to modules/batoto/__init__.py
diff --git a/weboob/backends/batoto/backend.py b/modules/batoto/backend.py
similarity index 100%
rename from weboob/backends/batoto/backend.py
rename to modules/batoto/backend.py
diff --git a/weboob/backends/batoto/test.py b/modules/batoto/test.py
similarity index 100%
rename from weboob/backends/batoto/test.py
rename to modules/batoto/test.py
diff --git a/weboob/backends/bnporc/__init__.py b/modules/bnporc/__init__.py
similarity index 100%
rename from weboob/backends/bnporc/__init__.py
rename to modules/bnporc/__init__.py
diff --git a/weboob/backends/bnporc/backend.py b/modules/bnporc/backend.py
similarity index 100%
rename from weboob/backends/bnporc/backend.py
rename to modules/bnporc/backend.py
diff --git a/weboob/backends/bnporc/browser.py b/modules/bnporc/browser.py
similarity index 99%
rename from weboob/backends/bnporc/browser.py
rename to modules/bnporc/browser.py
index 29b628b4e0be38e1665c6f63587f1c78531ff857..decd95b95be7cca964883a2cc632a67ab28fe6e2 100644
--- a/weboob/backends/bnporc/browser.py
+++ b/modules/bnporc/browser.py
@@ -23,7 +23,7 @@
from weboob.tools.browser import BaseBrowser, BrowserIncorrectPassword
from weboob.capabilities.bank import TransferError, Transfer
-from weboob.backends.bnporc import pages
+from bnporc import pages
from .errors import PasswordExpired
diff --git a/weboob/backends/bnporc/errors.py b/modules/bnporc/errors.py
similarity index 100%
rename from weboob/backends/bnporc/errors.py
rename to modules/bnporc/errors.py
diff --git a/icons/bnporc.png b/modules/bnporc/favicon.png
similarity index 100%
rename from icons/bnporc.png
rename to modules/bnporc/favicon.png
diff --git a/weboob/backends/bnporc/pages/__init__.py b/modules/bnporc/pages/__init__.py
similarity index 100%
rename from weboob/backends/bnporc/pages/__init__.py
rename to modules/bnporc/pages/__init__.py
diff --git a/weboob/backends/bnporc/pages/account_coming.py b/modules/bnporc/pages/account_coming.py
similarity index 100%
rename from weboob/backends/bnporc/pages/account_coming.py
rename to modules/bnporc/pages/account_coming.py
diff --git a/weboob/backends/bnporc/pages/account_history.py b/modules/bnporc/pages/account_history.py
similarity index 100%
rename from weboob/backends/bnporc/pages/account_history.py
rename to modules/bnporc/pages/account_history.py
diff --git a/weboob/backends/bnporc/pages/accounts_list.py b/modules/bnporc/pages/accounts_list.py
similarity index 100%
rename from weboob/backends/bnporc/pages/accounts_list.py
rename to modules/bnporc/pages/accounts_list.py
diff --git a/weboob/backends/bnporc/pages/login.py b/modules/bnporc/pages/login.py
similarity index 100%
rename from weboob/backends/bnporc/pages/login.py
rename to modules/bnporc/pages/login.py
diff --git a/weboob/backends/bnporc/pages/transfer.py b/modules/bnporc/pages/transfer.py
similarity index 100%
rename from weboob/backends/bnporc/pages/transfer.py
rename to modules/bnporc/pages/transfer.py
diff --git a/weboob/backends/bnporc/test.py b/modules/bnporc/test.py
similarity index 100%
rename from weboob/backends/bnporc/test.py
rename to modules/bnporc/test.py
diff --git a/weboob/backends/boursorama/__init__.py b/modules/boursorama/__init__.py
similarity index 100%
rename from weboob/backends/boursorama/__init__.py
rename to modules/boursorama/__init__.py
diff --git a/weboob/backends/boursorama/backend.py b/modules/boursorama/backend.py
similarity index 100%
rename from weboob/backends/boursorama/backend.py
rename to modules/boursorama/backend.py
diff --git a/weboob/backends/boursorama/browser.py b/modules/boursorama/browser.py
similarity index 98%
rename from weboob/backends/boursorama/browser.py
rename to modules/boursorama/browser.py
index b2006704d480f4e8ce79558c2eb42aa4f56175b5..6ad5b5d668de3e2a79d9f99af6cd208f2d539016 100644
--- a/weboob/backends/boursorama/browser.py
+++ b/modules/boursorama/browser.py
@@ -20,7 +20,7 @@
from weboob.tools.browser import BaseBrowser, BrowserIncorrectPassword
-from weboob.backends.boursorama import pages
+from boursorama import pages
from datetime import date
from dateutil.relativedelta import relativedelta
diff --git a/weboob/backends/boursorama/pages/__init__.py b/modules/boursorama/pages/__init__.py
similarity index 100%
rename from weboob/backends/boursorama/pages/__init__.py
rename to modules/boursorama/pages/__init__.py
diff --git a/weboob/backends/boursorama/pages/account_history.py b/modules/boursorama/pages/account_history.py
similarity index 100%
rename from weboob/backends/boursorama/pages/account_history.py
rename to modules/boursorama/pages/account_history.py
diff --git a/weboob/backends/boursorama/pages/accounts_list.py b/modules/boursorama/pages/accounts_list.py
similarity index 100%
rename from weboob/backends/boursorama/pages/accounts_list.py
rename to modules/boursorama/pages/accounts_list.py
diff --git a/weboob/backends/boursorama/pages/login.py b/modules/boursorama/pages/login.py
similarity index 100%
rename from weboob/backends/boursorama/pages/login.py
rename to modules/boursorama/pages/login.py
diff --git a/weboob/backends/boursorama/test.py b/modules/boursorama/test.py
similarity index 100%
rename from weboob/backends/boursorama/test.py
rename to modules/boursorama/test.py
diff --git a/weboob/backends/bouygues/__init__.py b/modules/bouygues/__init__.py
similarity index 100%
rename from weboob/backends/bouygues/__init__.py
rename to modules/bouygues/__init__.py
diff --git a/weboob/backends/bouygues/backend.py b/modules/bouygues/backend.py
similarity index 100%
rename from weboob/backends/bouygues/backend.py
rename to modules/bouygues/backend.py
diff --git a/weboob/backends/bouygues/browser.py b/modules/bouygues/browser.py
similarity index 100%
rename from weboob/backends/bouygues/browser.py
rename to modules/bouygues/browser.py
diff --git a/icons/bouygues.png b/modules/bouygues/favicon.png
similarity index 100%
rename from icons/bouygues.png
rename to modules/bouygues/favicon.png
diff --git a/weboob/backends/bouygues/pages/__init__.py b/modules/bouygues/pages/__init__.py
similarity index 100%
rename from weboob/backends/bouygues/pages/__init__.py
rename to modules/bouygues/pages/__init__.py
diff --git a/weboob/backends/bouygues/pages/compose.py b/modules/bouygues/pages/compose.py
similarity index 100%
rename from weboob/backends/bouygues/pages/compose.py
rename to modules/bouygues/pages/compose.py
diff --git a/weboob/backends/bouygues/pages/login.py b/modules/bouygues/pages/login.py
similarity index 100%
rename from weboob/backends/bouygues/pages/login.py
rename to modules/bouygues/pages/login.py
diff --git a/weboob/backends/bouygues/test.py b/modules/bouygues/test.py
similarity index 100%
rename from weboob/backends/bouygues/test.py
rename to modules/bouygues/test.py
diff --git a/weboob/backends/bp/__init__.py b/modules/bp/__init__.py
similarity index 100%
rename from weboob/backends/bp/__init__.py
rename to modules/bp/__init__.py
diff --git a/weboob/backends/bp/backend.py b/modules/bp/backend.py
similarity index 100%
rename from weboob/backends/bp/backend.py
rename to modules/bp/backend.py
diff --git a/weboob/backends/bp/browser.py b/modules/bp/browser.py
similarity index 100%
rename from weboob/backends/bp/browser.py
rename to modules/bp/browser.py
diff --git a/icons/bp.png b/modules/bp/favicon.png
similarity index 100%
rename from icons/bp.png
rename to modules/bp/favicon.png
diff --git a/weboob/backends/bp/pages/__init__.py b/modules/bp/pages/__init__.py
similarity index 100%
rename from weboob/backends/bp/pages/__init__.py
rename to modules/bp/pages/__init__.py
diff --git a/weboob/backends/bp/pages/accounthistory.py b/modules/bp/pages/accounthistory.py
similarity index 100%
rename from weboob/backends/bp/pages/accounthistory.py
rename to modules/bp/pages/accounthistory.py
diff --git a/weboob/backends/bp/pages/accountlist.py b/modules/bp/pages/accountlist.py
similarity index 100%
rename from weboob/backends/bp/pages/accountlist.py
rename to modules/bp/pages/accountlist.py
diff --git a/weboob/backends/bp/pages/login.py b/modules/bp/pages/login.py
similarity index 100%
rename from weboob/backends/bp/pages/login.py
rename to modules/bp/pages/login.py
diff --git a/weboob/backends/bp/pages/transfer.py b/modules/bp/pages/transfer.py
similarity index 100%
rename from weboob/backends/bp/pages/transfer.py
rename to modules/bp/pages/transfer.py
diff --git a/weboob/backends/canalplus/__init__.py b/modules/canalplus/__init__.py
similarity index 100%
rename from weboob/backends/canalplus/__init__.py
rename to modules/canalplus/__init__.py
diff --git a/weboob/backends/canalplus/backend.py b/modules/canalplus/backend.py
similarity index 100%
rename from weboob/backends/canalplus/backend.py
rename to modules/canalplus/backend.py
diff --git a/weboob/backends/canalplus/browser.py b/modules/canalplus/browser.py
similarity index 100%
rename from weboob/backends/canalplus/browser.py
rename to modules/canalplus/browser.py
diff --git a/icons/canalplus.png b/modules/canalplus/favicon.png
similarity index 100%
rename from icons/canalplus.png
rename to modules/canalplus/favicon.png
diff --git a/weboob/backends/canalplus/pages/__init__.py b/modules/canalplus/pages/__init__.py
similarity index 100%
rename from weboob/backends/canalplus/pages/__init__.py
rename to modules/canalplus/pages/__init__.py
diff --git a/weboob/backends/canalplus/pages/initpage.py b/modules/canalplus/pages/initpage.py
similarity index 100%
rename from weboob/backends/canalplus/pages/initpage.py
rename to modules/canalplus/pages/initpage.py
diff --git a/weboob/backends/canalplus/pages/video.py b/modules/canalplus/pages/video.py
similarity index 100%
rename from weboob/backends/canalplus/pages/video.py
rename to modules/canalplus/pages/video.py
diff --git a/weboob/backends/canalplus/pages/videopage.py b/modules/canalplus/pages/videopage.py
similarity index 100%
rename from weboob/backends/canalplus/pages/videopage.py
rename to modules/canalplus/pages/videopage.py
diff --git a/weboob/backends/canalplus/test.py b/modules/canalplus/test.py
similarity index 100%
rename from weboob/backends/canalplus/test.py
rename to modules/canalplus/test.py
diff --git a/weboob/backends/canaltp/__init__.py b/modules/canaltp/__init__.py
similarity index 100%
rename from weboob/backends/canaltp/__init__.py
rename to modules/canaltp/__init__.py
diff --git a/weboob/backends/canaltp/backend.py b/modules/canaltp/backend.py
similarity index 100%
rename from weboob/backends/canaltp/backend.py
rename to modules/canaltp/backend.py
diff --git a/weboob/backends/canaltp/browser.py b/modules/canaltp/browser.py
similarity index 100%
rename from weboob/backends/canaltp/browser.py
rename to modules/canaltp/browser.py
diff --git a/icons/canaltp.png b/modules/canaltp/favicon.png
similarity index 100%
rename from icons/canaltp.png
rename to modules/canaltp/favicon.png
diff --git a/weboob/backends/canaltp/test.py b/modules/canaltp/test.py
similarity index 100%
rename from weboob/backends/canaltp/test.py
rename to modules/canaltp/test.py
diff --git a/weboob/backends/cmb/__init__.py b/modules/cmb/__init__.py
similarity index 100%
rename from weboob/backends/cmb/__init__.py
rename to modules/cmb/__init__.py
diff --git a/weboob/backends/cmb/backend.py b/modules/cmb/backend.py
similarity index 100%
rename from weboob/backends/cmb/backend.py
rename to modules/cmb/backend.py
diff --git a/weboob/backends/cragr/__init__.py b/modules/cragr/__init__.py
similarity index 100%
rename from weboob/backends/cragr/__init__.py
rename to modules/cragr/__init__.py
diff --git a/weboob/backends/cragr/backend.py b/modules/cragr/backend.py
similarity index 100%
rename from weboob/backends/cragr/backend.py
rename to modules/cragr/backend.py
diff --git a/weboob/backends/cragr/browser.py b/modules/cragr/browser.py
similarity index 99%
rename from weboob/backends/cragr/browser.py
rename to modules/cragr/browser.py
index e1a2c35bfa0941309d3ebb683eedd42fa7a43106..6b55b35c02efd56aaa848807e1e3868ff58ef0d1 100644
--- a/weboob/backends/cragr/browser.py
+++ b/modules/cragr/browser.py
@@ -20,7 +20,7 @@
from weboob.tools.browser import BaseBrowser, BrowserIncorrectPassword
from weboob.capabilities.bank import Transfer, TransferError
-from weboob.backends.cragr import pages
+from cragr import pages
import mechanize
from datetime import datetime
import re
diff --git a/icons/cragr.png b/modules/cragr/favicon.png
similarity index 100%
rename from icons/cragr.png
rename to modules/cragr/favicon.png
diff --git a/weboob/backends/cragr/pages/__init__.py b/modules/cragr/pages/__init__.py
similarity index 100%
rename from weboob/backends/cragr/pages/__init__.py
rename to modules/cragr/pages/__init__.py
diff --git a/weboob/backends/cragr/pages/accounts_list.py b/modules/cragr/pages/accounts_list.py
similarity index 100%
rename from weboob/backends/cragr/pages/accounts_list.py
rename to modules/cragr/pages/accounts_list.py
diff --git a/weboob/backends/cragr/pages/base.py b/modules/cragr/pages/base.py
similarity index 100%
rename from weboob/backends/cragr/pages/base.py
rename to modules/cragr/pages/base.py
diff --git a/weboob/backends/cragr/pages/login.py b/modules/cragr/pages/login.py
similarity index 100%
rename from weboob/backends/cragr/pages/login.py
rename to modules/cragr/pages/login.py
diff --git a/weboob/backends/cragr/test.py b/modules/cragr/test.py
similarity index 100%
rename from weboob/backends/cragr/test.py
rename to modules/cragr/test.py
diff --git a/weboob/backends/creditmutuel/__init__.py b/modules/creditmutuel/__init__.py
similarity index 100%
rename from weboob/backends/creditmutuel/__init__.py
rename to modules/creditmutuel/__init__.py
diff --git a/weboob/backends/creditmutuel/backend.py b/modules/creditmutuel/backend.py
similarity index 100%
rename from weboob/backends/creditmutuel/backend.py
rename to modules/creditmutuel/backend.py
diff --git a/weboob/backends/creditmutuel/browser.py b/modules/creditmutuel/browser.py
similarity index 100%
rename from weboob/backends/creditmutuel/browser.py
rename to modules/creditmutuel/browser.py
diff --git a/icons/creditmutuel.png b/modules/creditmutuel/favicon.png
similarity index 100%
rename from icons/creditmutuel.png
rename to modules/creditmutuel/favicon.png
diff --git a/weboob/backends/creditmutuel/pages.py b/modules/creditmutuel/pages.py
similarity index 100%
rename from weboob/backends/creditmutuel/pages.py
rename to modules/creditmutuel/pages.py
diff --git a/weboob/backends/creditmutuel/test.py b/modules/creditmutuel/test.py
similarity index 100%
rename from weboob/backends/creditmutuel/test.py
rename to modules/creditmutuel/test.py
diff --git a/weboob/backends/dailymotion/__init__.py b/modules/dailymotion/__init__.py
similarity index 100%
rename from weboob/backends/dailymotion/__init__.py
rename to modules/dailymotion/__init__.py
diff --git a/weboob/backends/dailymotion/backend.py b/modules/dailymotion/backend.py
similarity index 100%
rename from weboob/backends/dailymotion/backend.py
rename to modules/dailymotion/backend.py
diff --git a/weboob/backends/dailymotion/browser.py b/modules/dailymotion/browser.py
similarity index 100%
rename from weboob/backends/dailymotion/browser.py
rename to modules/dailymotion/browser.py
diff --git a/icons/dailymotion.png b/modules/dailymotion/favicon.png
similarity index 100%
rename from icons/dailymotion.png
rename to modules/dailymotion/favicon.png
diff --git a/weboob/backends/dailymotion/pages.py b/modules/dailymotion/pages.py
similarity index 100%
rename from weboob/backends/dailymotion/pages.py
rename to modules/dailymotion/pages.py
diff --git a/weboob/backends/dailymotion/test.py b/modules/dailymotion/test.py
similarity index 100%
rename from weboob/backends/dailymotion/test.py
rename to modules/dailymotion/test.py
diff --git a/weboob/backends/dailymotion/video.py b/modules/dailymotion/video.py
similarity index 100%
rename from weboob/backends/dailymotion/video.py
rename to modules/dailymotion/video.py
diff --git a/weboob/backends/dlfp/__init__.py b/modules/dlfp/__init__.py
similarity index 100%
rename from weboob/backends/dlfp/__init__.py
rename to modules/dlfp/__init__.py
diff --git a/weboob/backends/dlfp/backend.py b/modules/dlfp/backend.py
similarity index 100%
rename from weboob/backends/dlfp/backend.py
rename to modules/dlfp/backend.py
diff --git a/weboob/backends/dlfp/browser.py b/modules/dlfp/browser.py
similarity index 100%
rename from weboob/backends/dlfp/browser.py
rename to modules/dlfp/browser.py
diff --git a/icons/dlfp.png b/modules/dlfp/favicon.png
similarity index 100%
rename from icons/dlfp.png
rename to modules/dlfp/favicon.png
diff --git a/weboob/backends/dlfp/pages/__init__.py b/modules/dlfp/pages/__init__.py
similarity index 100%
rename from weboob/backends/dlfp/pages/__init__.py
rename to modules/dlfp/pages/__init__.py
diff --git a/weboob/backends/dlfp/pages/board.py b/modules/dlfp/pages/board.py
similarity index 100%
rename from weboob/backends/dlfp/pages/board.py
rename to modules/dlfp/pages/board.py
diff --git a/weboob/backends/dlfp/pages/index.py b/modules/dlfp/pages/index.py
similarity index 100%
rename from weboob/backends/dlfp/pages/index.py
rename to modules/dlfp/pages/index.py
diff --git a/weboob/backends/dlfp/pages/news.py b/modules/dlfp/pages/news.py
similarity index 99%
rename from weboob/backends/dlfp/pages/news.py
rename to modules/dlfp/pages/news.py
index 864cf56a6c59ca9bb5579c3689b6d5e8984e078f..57d4c126a1b45af19a139fd1dcf54e05977e1460 100644
--- a/weboob/backends/dlfp/pages/news.py
+++ b/modules/dlfp/pages/news.py
@@ -22,7 +22,7 @@
from weboob.tools.browser import BrokenPageError
from weboob.tools.misc import local2utc
-from weboob.backends.dlfp.tools import url2id
+from dlfp.tools import url2id
from .index import DLFPPage
diff --git a/weboob/backends/dlfp/pages/wiki.py b/modules/dlfp/pages/wiki.py
similarity index 100%
rename from weboob/backends/dlfp/pages/wiki.py
rename to modules/dlfp/pages/wiki.py
diff --git a/weboob/backends/dlfp/test.py b/modules/dlfp/test.py
similarity index 97%
rename from weboob/backends/dlfp/test.py
rename to modules/dlfp/test.py
index bf4bc6b930a57b275707ef642b2906cdb02e10f7..d3f4bdfe9b761819c6da574ce4582ffda73c3d46 100644
--- a/weboob/backends/dlfp/test.py
+++ b/modules/dlfp/test.py
@@ -21,7 +21,7 @@
from datetime import datetime
from weboob.tools.test import BackendTest
-from weboob.backends.dlfp.browser import DLFP
+from dlfp.browser import DLFP
__all__ = ['DLFPTest']
diff --git a/weboob/backends/dlfp/tools.py b/modules/dlfp/tools.py
similarity index 100%
rename from weboob/backends/dlfp/tools.py
rename to modules/dlfp/tools.py
diff --git a/weboob/backends/eatmanga/__init__.py b/modules/eatmanga/__init__.py
similarity index 100%
rename from weboob/backends/eatmanga/__init__.py
rename to modules/eatmanga/__init__.py
diff --git a/weboob/backends/eatmanga/backend.py b/modules/eatmanga/backend.py
similarity index 100%
rename from weboob/backends/eatmanga/backend.py
rename to modules/eatmanga/backend.py
diff --git a/weboob/backends/eatmanga/test.py b/modules/eatmanga/test.py
similarity index 100%
rename from weboob/backends/eatmanga/test.py
rename to modules/eatmanga/test.py
diff --git a/weboob/backends/ecrans/__init__.py b/modules/ecrans/__init__.py
similarity index 100%
rename from weboob/backends/ecrans/__init__.py
rename to modules/ecrans/__init__.py
diff --git a/weboob/backends/ecrans/backend.py b/modules/ecrans/backend.py
similarity index 100%
rename from weboob/backends/ecrans/backend.py
rename to modules/ecrans/backend.py
diff --git a/weboob/backends/ecrans/browser.py b/modules/ecrans/browser.py
similarity index 100%
rename from weboob/backends/ecrans/browser.py
rename to modules/ecrans/browser.py
diff --git a/icons/ecrans.png b/modules/ecrans/favicon.png
similarity index 100%
rename from icons/ecrans.png
rename to modules/ecrans/favicon.png
diff --git a/weboob/backends/ecrans/pages/__init__.py b/modules/ecrans/pages/__init__.py
similarity index 100%
rename from weboob/backends/ecrans/pages/__init__.py
rename to modules/ecrans/pages/__init__.py
diff --git a/weboob/backends/ecrans/pages/article.py b/modules/ecrans/pages/article.py
similarity index 100%
rename from weboob/backends/ecrans/pages/article.py
rename to modules/ecrans/pages/article.py
diff --git a/weboob/backends/ecrans/test.py b/modules/ecrans/test.py
similarity index 100%
rename from weboob/backends/ecrans/test.py
rename to modules/ecrans/test.py
diff --git a/weboob/backends/ecrans/tools.py b/modules/ecrans/tools.py
similarity index 100%
rename from weboob/backends/ecrans/tools.py
rename to modules/ecrans/tools.py
diff --git a/weboob/backends/ehentai/__init__.py b/modules/ehentai/__init__.py
similarity index 100%
rename from weboob/backends/ehentai/__init__.py
rename to modules/ehentai/__init__.py
diff --git a/weboob/backends/ehentai/backend.py b/modules/ehentai/backend.py
similarity index 100%
rename from weboob/backends/ehentai/backend.py
rename to modules/ehentai/backend.py
diff --git a/weboob/backends/ehentai/browser.py b/modules/ehentai/browser.py
similarity index 100%
rename from weboob/backends/ehentai/browser.py
rename to modules/ehentai/browser.py
diff --git a/icons/ehentai.png b/modules/ehentai/favicon.png
similarity index 100%
rename from icons/ehentai.png
rename to modules/ehentai/favicon.png
diff --git a/weboob/backends/ehentai/gallery.py b/modules/ehentai/gallery.py
similarity index 100%
rename from weboob/backends/ehentai/gallery.py
rename to modules/ehentai/gallery.py
diff --git a/weboob/backends/ehentai/pages.py b/modules/ehentai/pages.py
similarity index 100%
rename from weboob/backends/ehentai/pages.py
rename to modules/ehentai/pages.py
diff --git a/weboob/backends/ehentai/test.py b/modules/ehentai/test.py
similarity index 100%
rename from weboob/backends/ehentai/test.py
rename to modules/ehentai/test.py
diff --git a/weboob/backends/fourchan/__init__.py b/modules/fourchan/__init__.py
similarity index 100%
rename from weboob/backends/fourchan/__init__.py
rename to modules/fourchan/__init__.py
diff --git a/weboob/backends/fourchan/backend.py b/modules/fourchan/backend.py
similarity index 100%
rename from weboob/backends/fourchan/backend.py
rename to modules/fourchan/backend.py
diff --git a/weboob/backends/fourchan/browser.py b/modules/fourchan/browser.py
similarity index 100%
rename from weboob/backends/fourchan/browser.py
rename to modules/fourchan/browser.py
diff --git a/icons/fourchan.png b/modules/fourchan/favicon.png
similarity index 100%
rename from icons/fourchan.png
rename to modules/fourchan/favicon.png
diff --git a/weboob/backends/fourchan/pages/__init__.py b/modules/fourchan/pages/__init__.py
similarity index 100%
rename from weboob/backends/fourchan/pages/__init__.py
rename to modules/fourchan/pages/__init__.py
diff --git a/weboob/backends/fourchan/pages/board.py b/modules/fourchan/pages/board.py
similarity index 100%
rename from weboob/backends/fourchan/pages/board.py
rename to modules/fourchan/pages/board.py
diff --git a/weboob/backends/fourchan/test.py b/modules/fourchan/test.py
similarity index 100%
rename from weboob/backends/fourchan/test.py
rename to modules/fourchan/test.py
diff --git a/weboob/backends/franceinter/__init__.py b/modules/franceinter/__init__.py
similarity index 100%
rename from weboob/backends/franceinter/__init__.py
rename to modules/franceinter/__init__.py
diff --git a/weboob/backends/franceinter/backend.py b/modules/franceinter/backend.py
similarity index 100%
rename from weboob/backends/franceinter/backend.py
rename to modules/franceinter/backend.py
diff --git a/icons/franceinter.png b/modules/franceinter/favicon.png
similarity index 100%
rename from icons/franceinter.png
rename to modules/franceinter/favicon.png
diff --git a/weboob/backends/franceinter/test.py b/modules/franceinter/test.py
similarity index 100%
rename from weboob/backends/franceinter/test.py
rename to modules/franceinter/test.py
diff --git a/weboob/backends/francetelevisions/__init__.py b/modules/francetelevisions/__init__.py
similarity index 100%
rename from weboob/backends/francetelevisions/__init__.py
rename to modules/francetelevisions/__init__.py
diff --git a/weboob/backends/francetelevisions/backend.py b/modules/francetelevisions/backend.py
similarity index 100%
rename from weboob/backends/francetelevisions/backend.py
rename to modules/francetelevisions/backend.py
diff --git a/weboob/backends/francetelevisions/browser.py b/modules/francetelevisions/browser.py
similarity index 100%
rename from weboob/backends/francetelevisions/browser.py
rename to modules/francetelevisions/browser.py
diff --git a/icons/francetelevisions.png b/modules/francetelevisions/favicon.png
similarity index 100%
rename from icons/francetelevisions.png
rename to modules/francetelevisions/favicon.png
diff --git a/weboob/backends/francetelevisions/pages.py b/modules/francetelevisions/pages.py
similarity index 100%
rename from weboob/backends/francetelevisions/pages.py
rename to modules/francetelevisions/pages.py
diff --git a/weboob/backends/francetelevisions/test.py b/modules/francetelevisions/test.py
similarity index 100%
rename from weboob/backends/francetelevisions/test.py
rename to modules/francetelevisions/test.py
diff --git a/weboob/backends/francetelevisions/video.py b/modules/francetelevisions/video.py
similarity index 100%
rename from weboob/backends/francetelevisions/video.py
rename to modules/francetelevisions/video.py
diff --git a/weboob/backends/gazelle/__init__.py b/modules/gazelle/__init__.py
similarity index 100%
rename from weboob/backends/gazelle/__init__.py
rename to modules/gazelle/__init__.py
diff --git a/weboob/backends/gazelle/backend.py b/modules/gazelle/backend.py
similarity index 100%
rename from weboob/backends/gazelle/backend.py
rename to modules/gazelle/backend.py
diff --git a/weboob/backends/gazelle/browser.py b/modules/gazelle/browser.py
similarity index 100%
rename from weboob/backends/gazelle/browser.py
rename to modules/gazelle/browser.py
diff --git a/icons/gazelle.png b/modules/gazelle/favicon.png
similarity index 100%
rename from icons/gazelle.png
rename to modules/gazelle/favicon.png
diff --git a/weboob/backends/gazelle/pages/__init__.py b/modules/gazelle/pages/__init__.py
similarity index 100%
rename from weboob/backends/gazelle/pages/__init__.py
rename to modules/gazelle/pages/__init__.py
diff --git a/weboob/backends/gazelle/pages/base.py b/modules/gazelle/pages/base.py
similarity index 100%
rename from weboob/backends/gazelle/pages/base.py
rename to modules/gazelle/pages/base.py
diff --git a/weboob/backends/gazelle/pages/index.py b/modules/gazelle/pages/index.py
similarity index 100%
rename from weboob/backends/gazelle/pages/index.py
rename to modules/gazelle/pages/index.py
diff --git a/weboob/backends/gazelle/pages/torrents.py b/modules/gazelle/pages/torrents.py
similarity index 100%
rename from weboob/backends/gazelle/pages/torrents.py
rename to modules/gazelle/pages/torrents.py
diff --git a/weboob/backends/gazelle/test.py b/modules/gazelle/test.py
similarity index 100%
rename from weboob/backends/gazelle/test.py
rename to modules/gazelle/test.py
diff --git a/weboob/backends/geolocip/__init__.py b/modules/geolocip/__init__.py
similarity index 100%
rename from weboob/backends/geolocip/__init__.py
rename to modules/geolocip/__init__.py
diff --git a/weboob/backends/geolocip/backend.py b/modules/geolocip/backend.py
similarity index 100%
rename from weboob/backends/geolocip/backend.py
rename to modules/geolocip/backend.py
diff --git a/icons/geolocip.png b/modules/geolocip/favicon.png
similarity index 100%
rename from icons/geolocip.png
rename to modules/geolocip/favicon.png
diff --git a/weboob/backends/geolocip/test.py b/modules/geolocip/test.py
similarity index 100%
rename from weboob/backends/geolocip/test.py
rename to modules/geolocip/test.py
diff --git a/weboob/backends/hds/__init__.py b/modules/hds/__init__.py
similarity index 100%
rename from weboob/backends/hds/__init__.py
rename to modules/hds/__init__.py
diff --git a/weboob/backends/hds/backend.py b/modules/hds/backend.py
similarity index 100%
rename from weboob/backends/hds/backend.py
rename to modules/hds/backend.py
diff --git a/weboob/backends/hds/browser.py b/modules/hds/browser.py
similarity index 100%
rename from weboob/backends/hds/browser.py
rename to modules/hds/browser.py
diff --git a/icons/hds.png b/modules/hds/favicon.png
similarity index 100%
rename from icons/hds.png
rename to modules/hds/favicon.png
diff --git a/weboob/backends/hds/pages.py b/modules/hds/pages.py
similarity index 100%
rename from weboob/backends/hds/pages.py
rename to modules/hds/pages.py
diff --git a/weboob/backends/hds/test.py b/modules/hds/test.py
similarity index 100%
rename from weboob/backends/hds/test.py
rename to modules/hds/test.py
diff --git a/weboob/backends/ina/__init__.py b/modules/ina/__init__.py
similarity index 100%
rename from weboob/backends/ina/__init__.py
rename to modules/ina/__init__.py
diff --git a/weboob/backends/ina/backend.py b/modules/ina/backend.py
similarity index 100%
rename from weboob/backends/ina/backend.py
rename to modules/ina/backend.py
diff --git a/weboob/backends/ina/browser.py b/modules/ina/browser.py
similarity index 100%
rename from weboob/backends/ina/browser.py
rename to modules/ina/browser.py
diff --git a/icons/ina.png b/modules/ina/favicon.png
similarity index 100%
rename from icons/ina.png
rename to modules/ina/favicon.png
diff --git a/weboob/backends/ina/pages/__init__.py b/modules/ina/pages/__init__.py
similarity index 100%
rename from weboob/backends/ina/pages/__init__.py
rename to modules/ina/pages/__init__.py
diff --git a/weboob/backends/ina/pages/search.py b/modules/ina/pages/search.py
similarity index 100%
rename from weboob/backends/ina/pages/search.py
rename to modules/ina/pages/search.py
diff --git a/weboob/backends/ina/pages/video.py b/modules/ina/pages/video.py
similarity index 100%
rename from weboob/backends/ina/pages/video.py
rename to modules/ina/pages/video.py
diff --git a/weboob/backends/ina/test.py b/modules/ina/test.py
similarity index 100%
rename from weboob/backends/ina/test.py
rename to modules/ina/test.py
diff --git a/weboob/backends/ina/video.py b/modules/ina/video.py
similarity index 100%
rename from weboob/backends/ina/video.py
rename to modules/ina/video.py
diff --git a/weboob/backends/ing/__init__.py b/modules/ing/__init__.py
similarity index 100%
rename from weboob/backends/ing/__init__.py
rename to modules/ing/__init__.py
diff --git a/weboob/backends/ing/backend.py b/modules/ing/backend.py
similarity index 100%
rename from weboob/backends/ing/backend.py
rename to modules/ing/backend.py
diff --git a/weboob/backends/ing/browser.py b/modules/ing/browser.py
similarity index 98%
rename from weboob/backends/ing/browser.py
rename to modules/ing/browser.py
index 95dfbcce95402f90d4236ad6052a5a79b3336f5d..62dd1b7dba46330c3e7b93de22858b5469792606 100644
--- a/weboob/backends/ing/browser.py
+++ b/modules/ing/browser.py
@@ -19,7 +19,7 @@
from weboob.tools.browser import BaseBrowser
-from weboob.backends.ing import pages
+from ing import pages
__all__ = ['Ing']
diff --git a/weboob/backends/ing/pages/__init__.py b/modules/ing/pages/__init__.py
similarity index 100%
rename from weboob/backends/ing/pages/__init__.py
rename to modules/ing/pages/__init__.py
diff --git a/weboob/backends/ing/pages/account_history.py b/modules/ing/pages/account_history.py
similarity index 100%
rename from weboob/backends/ing/pages/account_history.py
rename to modules/ing/pages/account_history.py
diff --git a/weboob/backends/ing/pages/accounts_list.py b/modules/ing/pages/accounts_list.py
similarity index 100%
rename from weboob/backends/ing/pages/accounts_list.py
rename to modules/ing/pages/accounts_list.py
diff --git a/weboob/backends/ing/pages/login.py b/modules/ing/pages/login.py
similarity index 100%
rename from weboob/backends/ing/pages/login.py
rename to modules/ing/pages/login.py
diff --git a/weboob/backends/ing/test.py b/modules/ing/test.py
similarity index 100%
rename from weboob/backends/ing/test.py
rename to modules/ing/test.py
diff --git a/weboob/backends/inrocks/__init__.py b/modules/inrocks/__init__.py
similarity index 100%
rename from weboob/backends/inrocks/__init__.py
rename to modules/inrocks/__init__.py
diff --git a/weboob/backends/inrocks/backend.py b/modules/inrocks/backend.py
similarity index 100%
rename from weboob/backends/inrocks/backend.py
rename to modules/inrocks/backend.py
diff --git a/weboob/backends/inrocks/browser.py b/modules/inrocks/browser.py
similarity index 100%
rename from weboob/backends/inrocks/browser.py
rename to modules/inrocks/browser.py
diff --git a/icons/inrocks.png b/modules/inrocks/favicon.png
similarity index 100%
rename from icons/inrocks.png
rename to modules/inrocks/favicon.png
diff --git a/weboob/backends/inrocks/pages/__init__.py b/modules/inrocks/pages/__init__.py
similarity index 100%
rename from weboob/backends/inrocks/pages/__init__.py
rename to modules/inrocks/pages/__init__.py
diff --git a/weboob/backends/inrocks/pages/article.py b/modules/inrocks/pages/article.py
similarity index 100%
rename from weboob/backends/inrocks/pages/article.py
rename to modules/inrocks/pages/article.py
diff --git a/weboob/backends/inrocks/pages/inrockstv.py b/modules/inrocks/pages/inrockstv.py
similarity index 100%
rename from weboob/backends/inrocks/pages/inrockstv.py
rename to modules/inrocks/pages/inrockstv.py
diff --git a/weboob/backends/inrocks/test.py b/modules/inrocks/test.py
similarity index 100%
rename from weboob/backends/inrocks/test.py
rename to modules/inrocks/test.py
diff --git a/weboob/backends/inrocks/tools.py b/modules/inrocks/tools.py
similarity index 100%
rename from weboob/backends/inrocks/tools.py
rename to modules/inrocks/tools.py
diff --git a/weboob/backends/ipinfodb/__init__.py b/modules/ipinfodb/__init__.py
similarity index 100%
rename from weboob/backends/ipinfodb/__init__.py
rename to modules/ipinfodb/__init__.py
diff --git a/weboob/backends/ipinfodb/backend.py b/modules/ipinfodb/backend.py
similarity index 100%
rename from weboob/backends/ipinfodb/backend.py
rename to modules/ipinfodb/backend.py
diff --git a/icons/ipinfodb.png b/modules/ipinfodb/favicon.png
similarity index 100%
rename from icons/ipinfodb.png
rename to modules/ipinfodb/favicon.png
diff --git a/weboob/backends/ipinfodb/test.py b/modules/ipinfodb/test.py
similarity index 100%
rename from weboob/backends/ipinfodb/test.py
rename to modules/ipinfodb/test.py
diff --git a/weboob/backends/isohunt/__init__.py b/modules/isohunt/__init__.py
similarity index 100%
rename from weboob/backends/isohunt/__init__.py
rename to modules/isohunt/__init__.py
diff --git a/weboob/backends/isohunt/backend.py b/modules/isohunt/backend.py
similarity index 100%
rename from weboob/backends/isohunt/backend.py
rename to modules/isohunt/backend.py
diff --git a/weboob/backends/isohunt/browser.py b/modules/isohunt/browser.py
similarity index 100%
rename from weboob/backends/isohunt/browser.py
rename to modules/isohunt/browser.py
diff --git a/icons/isohunt.png b/modules/isohunt/favicon.png
similarity index 100%
rename from icons/isohunt.png
rename to modules/isohunt/favicon.png
diff --git a/weboob/backends/isohunt/pages/__init__.py b/modules/isohunt/pages/__init__.py
similarity index 100%
rename from weboob/backends/isohunt/pages/__init__.py
rename to modules/isohunt/pages/__init__.py
diff --git a/weboob/backends/isohunt/pages/torrents.py b/modules/isohunt/pages/torrents.py
similarity index 100%
rename from weboob/backends/isohunt/pages/torrents.py
rename to modules/isohunt/pages/torrents.py
diff --git a/weboob/backends/isohunt/test.py b/modules/isohunt/test.py
similarity index 100%
rename from weboob/backends/isohunt/test.py
rename to modules/isohunt/test.py
diff --git a/weboob/backends/izneo/__init__.py b/modules/izneo/__init__.py
similarity index 100%
rename from weboob/backends/izneo/__init__.py
rename to modules/izneo/__init__.py
diff --git a/weboob/backends/izneo/backend.py b/modules/izneo/backend.py
similarity index 100%
rename from weboob/backends/izneo/backend.py
rename to modules/izneo/backend.py
diff --git a/icons/izneo.png b/modules/izneo/favicon.png
similarity index 100%
rename from icons/izneo.png
rename to modules/izneo/favicon.png
diff --git a/weboob/backends/kickass/__init__.py b/modules/kickass/__init__.py
similarity index 100%
rename from weboob/backends/kickass/__init__.py
rename to modules/kickass/__init__.py
diff --git a/weboob/backends/kickass/backend.py b/modules/kickass/backend.py
similarity index 100%
rename from weboob/backends/kickass/backend.py
rename to modules/kickass/backend.py
diff --git a/weboob/backends/kickass/browser.py b/modules/kickass/browser.py
similarity index 100%
rename from weboob/backends/kickass/browser.py
rename to modules/kickass/browser.py
diff --git a/icons/kickass.png b/modules/kickass/favicon.png
similarity index 100%
rename from icons/kickass.png
rename to modules/kickass/favicon.png
diff --git a/weboob/backends/kickass/pages/__init__.py b/modules/kickass/pages/__init__.py
similarity index 100%
rename from weboob/backends/kickass/pages/__init__.py
rename to modules/kickass/pages/__init__.py
diff --git a/weboob/backends/kickass/pages/torrents.py b/modules/kickass/pages/torrents.py
similarity index 100%
rename from weboob/backends/kickass/pages/torrents.py
rename to modules/kickass/pages/torrents.py
diff --git a/weboob/backends/kickass/test.py b/modules/kickass/test.py
similarity index 100%
rename from weboob/backends/kickass/test.py
rename to modules/kickass/test.py
diff --git a/weboob/backends/lcl/__init__.py b/modules/lcl/__init__.py
similarity index 100%
rename from weboob/backends/lcl/__init__.py
rename to modules/lcl/__init__.py
diff --git a/weboob/backends/lcl/backend.py b/modules/lcl/backend.py
similarity index 100%
rename from weboob/backends/lcl/backend.py
rename to modules/lcl/backend.py
diff --git a/weboob/backends/lcl/browser.py b/modules/lcl/browser.py
similarity index 100%
rename from weboob/backends/lcl/browser.py
rename to modules/lcl/browser.py
diff --git a/icons/lcl.png b/modules/lcl/favicon.png
similarity index 100%
rename from icons/lcl.png
rename to modules/lcl/favicon.png
diff --git a/weboob/backends/lcl/pages.py b/modules/lcl/pages.py
similarity index 100%
rename from weboob/backends/lcl/pages.py
rename to modules/lcl/pages.py
diff --git a/weboob/backends/lcl/test.py b/modules/lcl/test.py
similarity index 100%
rename from weboob/backends/lcl/test.py
rename to modules/lcl/test.py
diff --git a/weboob/backends/lefigaro/__init__.py b/modules/lefigaro/__init__.py
similarity index 100%
rename from weboob/backends/lefigaro/__init__.py
rename to modules/lefigaro/__init__.py
diff --git a/weboob/backends/lefigaro/backend.py b/modules/lefigaro/backend.py
similarity index 100%
rename from weboob/backends/lefigaro/backend.py
rename to modules/lefigaro/backend.py
diff --git a/weboob/backends/lefigaro/browser.py b/modules/lefigaro/browser.py
similarity index 100%
rename from weboob/backends/lefigaro/browser.py
rename to modules/lefigaro/browser.py
diff --git a/icons/lefigaro.png b/modules/lefigaro/favicon.png
similarity index 100%
rename from icons/lefigaro.png
rename to modules/lefigaro/favicon.png
diff --git a/weboob/backends/lefigaro/pages/__init__.py b/modules/lefigaro/pages/__init__.py
similarity index 100%
rename from weboob/backends/lefigaro/pages/__init__.py
rename to modules/lefigaro/pages/__init__.py
diff --git a/weboob/backends/lefigaro/pages/article.py b/modules/lefigaro/pages/article.py
similarity index 100%
rename from weboob/backends/lefigaro/pages/article.py
rename to modules/lefigaro/pages/article.py
diff --git a/weboob/backends/lefigaro/pages/flashactu.py b/modules/lefigaro/pages/flashactu.py
similarity index 100%
rename from weboob/backends/lefigaro/pages/flashactu.py
rename to modules/lefigaro/pages/flashactu.py
diff --git a/weboob/backends/lefigaro/pages/simple.py b/modules/lefigaro/pages/simple.py
similarity index 100%
rename from weboob/backends/lefigaro/pages/simple.py
rename to modules/lefigaro/pages/simple.py
diff --git a/weboob/backends/lefigaro/pages/special.py b/modules/lefigaro/pages/special.py
similarity index 100%
rename from weboob/backends/lefigaro/pages/special.py
rename to modules/lefigaro/pages/special.py
diff --git a/weboob/backends/lefigaro/test.py b/modules/lefigaro/test.py
similarity index 100%
rename from weboob/backends/lefigaro/test.py
rename to modules/lefigaro/test.py
diff --git a/weboob/backends/lefigaro/tools.py b/modules/lefigaro/tools.py
similarity index 100%
rename from weboob/backends/lefigaro/tools.py
rename to modules/lefigaro/tools.py
diff --git a/weboob/backends/lemouv/__init__.py b/modules/lemouv/__init__.py
similarity index 100%
rename from weboob/backends/lemouv/__init__.py
rename to modules/lemouv/__init__.py
diff --git a/weboob/backends/lemouv/backend.py b/modules/lemouv/backend.py
similarity index 100%
rename from weboob/backends/lemouv/backend.py
rename to modules/lemouv/backend.py
diff --git a/icons/lemouv.png b/modules/lemouv/favicon.png
similarity index 100%
rename from icons/lemouv.png
rename to modules/lemouv/favicon.png
diff --git a/weboob/backends/lemouv/test.py b/modules/lemouv/test.py
similarity index 100%
rename from weboob/backends/lemouv/test.py
rename to modules/lemouv/test.py
diff --git a/weboob/backends/mangafox/__init__.py b/modules/mangafox/__init__.py
similarity index 100%
rename from weboob/backends/mangafox/__init__.py
rename to modules/mangafox/__init__.py
diff --git a/weboob/backends/mangafox/backend.py b/modules/mangafox/backend.py
similarity index 100%
rename from weboob/backends/mangafox/backend.py
rename to modules/mangafox/backend.py
diff --git a/weboob/backends/mangafox/test.py b/modules/mangafox/test.py
similarity index 100%
rename from weboob/backends/mangafox/test.py
rename to modules/mangafox/test.py
diff --git a/weboob/backends/mangahere/__init__.py b/modules/mangahere/__init__.py
similarity index 100%
rename from weboob/backends/mangahere/__init__.py
rename to modules/mangahere/__init__.py
diff --git a/weboob/backends/mangahere/backend.py b/modules/mangahere/backend.py
similarity index 100%
rename from weboob/backends/mangahere/backend.py
rename to modules/mangahere/backend.py
diff --git a/weboob/backends/mangahere/test.py b/modules/mangahere/test.py
similarity index 100%
rename from weboob/backends/mangahere/test.py
rename to modules/mangahere/test.py
diff --git a/weboob/backends/mangareader/__init__.py b/modules/mangareader/__init__.py
similarity index 100%
rename from weboob/backends/mangareader/__init__.py
rename to modules/mangareader/__init__.py
diff --git a/weboob/backends/mangareader/backend.py b/modules/mangareader/backend.py
similarity index 100%
rename from weboob/backends/mangareader/backend.py
rename to modules/mangareader/backend.py
diff --git a/weboob/backends/mangareader/test.py b/modules/mangareader/test.py
similarity index 100%
rename from weboob/backends/mangareader/test.py
rename to modules/mangareader/test.py
diff --git a/weboob/backends/mangatoshokan/__init__.py b/modules/mangatoshokan/__init__.py
similarity index 100%
rename from weboob/backends/mangatoshokan/__init__.py
rename to modules/mangatoshokan/__init__.py
diff --git a/weboob/backends/mangatoshokan/backend.py b/modules/mangatoshokan/backend.py
similarity index 100%
rename from weboob/backends/mangatoshokan/backend.py
rename to modules/mangatoshokan/backend.py
diff --git a/weboob/backends/mangatoshokan/test.py b/modules/mangatoshokan/test.py
similarity index 100%
rename from weboob/backends/mangatoshokan/test.py
rename to modules/mangatoshokan/test.py
diff --git a/weboob/backends/mediawiki/__init__.py b/modules/mediawiki/__init__.py
similarity index 100%
rename from weboob/backends/mediawiki/__init__.py
rename to modules/mediawiki/__init__.py
diff --git a/weboob/backends/mediawiki/backend.py b/modules/mediawiki/backend.py
similarity index 100%
rename from weboob/backends/mediawiki/backend.py
rename to modules/mediawiki/backend.py
diff --git a/weboob/backends/mediawiki/browser.py b/modules/mediawiki/browser.py
similarity index 100%
rename from weboob/backends/mediawiki/browser.py
rename to modules/mediawiki/browser.py
diff --git a/icons/mediawiki.png b/modules/mediawiki/favicon.png
similarity index 100%
rename from icons/mediawiki.png
rename to modules/mediawiki/favicon.png
diff --git a/weboob/backends/mediawiki/test.py b/modules/mediawiki/test.py
similarity index 100%
rename from weboob/backends/mediawiki/test.py
rename to modules/mediawiki/test.py
diff --git a/weboob/backends/meteofrance/__init__.py b/modules/meteofrance/__init__.py
similarity index 100%
rename from weboob/backends/meteofrance/__init__.py
rename to modules/meteofrance/__init__.py
diff --git a/weboob/backends/meteofrance/backend.py b/modules/meteofrance/backend.py
similarity index 100%
rename from weboob/backends/meteofrance/backend.py
rename to modules/meteofrance/backend.py
diff --git a/weboob/backends/meteofrance/browser.py b/modules/meteofrance/browser.py
similarity index 100%
rename from weboob/backends/meteofrance/browser.py
rename to modules/meteofrance/browser.py
diff --git a/icons/meteofrance.png b/modules/meteofrance/favicon.png
similarity index 100%
rename from icons/meteofrance.png
rename to modules/meteofrance/favicon.png
diff --git a/weboob/backends/meteofrance/pages/__init__.py b/modules/meteofrance/pages/__init__.py
similarity index 100%
rename from weboob/backends/meteofrance/pages/__init__.py
rename to modules/meteofrance/pages/__init__.py
diff --git a/weboob/backends/meteofrance/pages/meteo.py b/modules/meteofrance/pages/meteo.py
similarity index 100%
rename from weboob/backends/meteofrance/pages/meteo.py
rename to modules/meteofrance/pages/meteo.py
diff --git a/weboob/backends/meteofrance/test.py b/modules/meteofrance/test.py
similarity index 100%
rename from weboob/backends/meteofrance/test.py
rename to modules/meteofrance/test.py
diff --git a/weboob/backends/minutes20/__init__.py b/modules/minutes20/__init__.py
similarity index 100%
rename from weboob/backends/minutes20/__init__.py
rename to modules/minutes20/__init__.py
diff --git a/weboob/backends/minutes20/backend.py b/modules/minutes20/backend.py
similarity index 100%
rename from weboob/backends/minutes20/backend.py
rename to modules/minutes20/backend.py
diff --git a/weboob/backends/minutes20/browser.py b/modules/minutes20/browser.py
similarity index 100%
rename from weboob/backends/minutes20/browser.py
rename to modules/minutes20/browser.py
diff --git a/icons/minutes20.png b/modules/minutes20/favicon.png
similarity index 100%
rename from icons/minutes20.png
rename to modules/minutes20/favicon.png
diff --git a/weboob/backends/minutes20/pages/__init__.py b/modules/minutes20/pages/__init__.py
similarity index 100%
rename from weboob/backends/minutes20/pages/__init__.py
rename to modules/minutes20/pages/__init__.py
diff --git a/weboob/backends/minutes20/pages/article.py b/modules/minutes20/pages/article.py
similarity index 100%
rename from weboob/backends/minutes20/pages/article.py
rename to modules/minutes20/pages/article.py
diff --git a/weboob/backends/minutes20/pages/simple.py b/modules/minutes20/pages/simple.py
similarity index 100%
rename from weboob/backends/minutes20/pages/simple.py
rename to modules/minutes20/pages/simple.py
diff --git a/weboob/backends/minutes20/test.py b/modules/minutes20/test.py
similarity index 100%
rename from weboob/backends/minutes20/test.py
rename to modules/minutes20/test.py
diff --git a/weboob/backends/minutes20/tools.py b/modules/minutes20/tools.py
similarity index 100%
rename from weboob/backends/minutes20/tools.py
rename to modules/minutes20/tools.py
diff --git a/weboob/backends/newsfeed/__init__.py b/modules/newsfeed/__init__.py
similarity index 100%
rename from weboob/backends/newsfeed/__init__.py
rename to modules/newsfeed/__init__.py
diff --git a/weboob/backends/newsfeed/backend.py b/modules/newsfeed/backend.py
similarity index 100%
rename from weboob/backends/newsfeed/backend.py
rename to modules/newsfeed/backend.py
diff --git a/icons/newsfeed.png b/modules/newsfeed/favicon.png
similarity index 100%
rename from icons/newsfeed.png
rename to modules/newsfeed/favicon.png
diff --git a/weboob/backends/newsfeed/test.py b/modules/newsfeed/test.py
similarity index 100%
rename from weboob/backends/newsfeed/test.py
rename to modules/newsfeed/test.py
diff --git a/weboob/backends/nolifetv/__init__.py b/modules/nolifetv/__init__.py
similarity index 100%
rename from weboob/backends/nolifetv/__init__.py
rename to modules/nolifetv/__init__.py
diff --git a/weboob/backends/nolifetv/backend.py b/modules/nolifetv/backend.py
similarity index 100%
rename from weboob/backends/nolifetv/backend.py
rename to modules/nolifetv/backend.py
diff --git a/weboob/backends/nolifetv/browser.py b/modules/nolifetv/browser.py
similarity index 100%
rename from weboob/backends/nolifetv/browser.py
rename to modules/nolifetv/browser.py
diff --git a/weboob/backends/nolifetv/pages/__init__.py b/modules/nolifetv/pages/__init__.py
similarity index 100%
rename from weboob/backends/nolifetv/pages/__init__.py
rename to modules/nolifetv/pages/__init__.py
diff --git a/weboob/backends/nolifetv/pages/index.py b/modules/nolifetv/pages/index.py
similarity index 100%
rename from weboob/backends/nolifetv/pages/index.py
rename to modules/nolifetv/pages/index.py
diff --git a/weboob/backends/nolifetv/pages/video.py b/modules/nolifetv/pages/video.py
similarity index 100%
rename from weboob/backends/nolifetv/pages/video.py
rename to modules/nolifetv/pages/video.py
diff --git a/weboob/backends/nolifetv/test.py b/modules/nolifetv/test.py
similarity index 100%
rename from weboob/backends/nolifetv/test.py
rename to modules/nolifetv/test.py
diff --git a/weboob/backends/nolifetv/video.py b/modules/nolifetv/video.py
similarity index 100%
rename from weboob/backends/nolifetv/video.py
rename to modules/nolifetv/video.py
diff --git a/weboob/backends/nova/__init__.py b/modules/nova/__init__.py
similarity index 100%
rename from weboob/backends/nova/__init__.py
rename to modules/nova/__init__.py
diff --git a/weboob/backends/nova/backend.py b/modules/nova/backend.py
similarity index 100%
rename from weboob/backends/nova/backend.py
rename to modules/nova/backend.py
diff --git a/icons/nova.png b/modules/nova/favicon.png
similarity index 100%
rename from icons/nova.png
rename to modules/nova/favicon.png
diff --git a/weboob/backends/nova/test.py b/modules/nova/test.py
similarity index 100%
rename from weboob/backends/nova/test.py
rename to modules/nova/test.py
diff --git a/weboob/backends/orange/__init__.py b/modules/orange/__init__.py
similarity index 100%
rename from weboob/backends/orange/__init__.py
rename to modules/orange/__init__.py
diff --git a/weboob/backends/orange/backend.py b/modules/orange/backend.py
similarity index 100%
rename from weboob/backends/orange/backend.py
rename to modules/orange/backend.py
diff --git a/weboob/backends/orange/browser.py b/modules/orange/browser.py
similarity index 100%
rename from weboob/backends/orange/browser.py
rename to modules/orange/browser.py
diff --git a/icons/orange.png b/modules/orange/favicon.png
similarity index 100%
rename from icons/orange.png
rename to modules/orange/favicon.png
diff --git a/weboob/backends/orange/pages/__init__.py b/modules/orange/pages/__init__.py
similarity index 100%
rename from weboob/backends/orange/pages/__init__.py
rename to modules/orange/pages/__init__.py
diff --git a/weboob/backends/orange/pages/compose.py b/modules/orange/pages/compose.py
similarity index 100%
rename from weboob/backends/orange/pages/compose.py
rename to modules/orange/pages/compose.py
diff --git a/weboob/backends/orange/pages/login.py b/modules/orange/pages/login.py
similarity index 100%
rename from weboob/backends/orange/pages/login.py
rename to modules/orange/pages/login.py
diff --git a/weboob/backends/ouifm/__init__.py b/modules/ouifm/__init__.py
similarity index 100%
rename from weboob/backends/ouifm/__init__.py
rename to modules/ouifm/__init__.py
diff --git a/weboob/backends/ouifm/backend.py b/modules/ouifm/backend.py
similarity index 100%
rename from weboob/backends/ouifm/backend.py
rename to modules/ouifm/backend.py
diff --git a/icons/ouifm.png b/modules/ouifm/favicon.png
similarity index 100%
rename from icons/ouifm.png
rename to modules/ouifm/favicon.png
diff --git a/weboob/backends/ouifm/test.py b/modules/ouifm/test.py
similarity index 100%
rename from weboob/backends/ouifm/test.py
rename to modules/ouifm/test.py
diff --git a/weboob/backends/pastealacon/__init__.py b/modules/pastealacon/__init__.py
similarity index 100%
rename from weboob/backends/pastealacon/__init__.py
rename to modules/pastealacon/__init__.py
diff --git a/weboob/backends/pastealacon/backend.py b/modules/pastealacon/backend.py
similarity index 100%
rename from weboob/backends/pastealacon/backend.py
rename to modules/pastealacon/backend.py
diff --git a/weboob/backends/pastealacon/browser.py b/modules/pastealacon/browser.py
similarity index 100%
rename from weboob/backends/pastealacon/browser.py
rename to modules/pastealacon/browser.py
diff --git a/icons/pastealacon.png b/modules/pastealacon/favicon.png
similarity index 100%
rename from icons/pastealacon.png
rename to modules/pastealacon/favicon.png
diff --git a/weboob/backends/pastealacon/pages.py b/modules/pastealacon/pages.py
similarity index 100%
rename from weboob/backends/pastealacon/pages.py
rename to modules/pastealacon/pages.py
diff --git a/weboob/backends/pastealacon/paste.py b/modules/pastealacon/paste.py
similarity index 100%
rename from weboob/backends/pastealacon/paste.py
rename to modules/pastealacon/paste.py
diff --git a/weboob/backends/pastealacon/test.py b/modules/pastealacon/test.py
similarity index 100%
rename from weboob/backends/pastealacon/test.py
rename to modules/pastealacon/test.py
diff --git a/weboob/backends/pastebin/__init__.py b/modules/pastebin/__init__.py
similarity index 100%
rename from weboob/backends/pastebin/__init__.py
rename to modules/pastebin/__init__.py
diff --git a/weboob/backends/pastebin/backend.py b/modules/pastebin/backend.py
similarity index 100%
rename from weboob/backends/pastebin/backend.py
rename to modules/pastebin/backend.py
diff --git a/weboob/backends/pastebin/browser.py b/modules/pastebin/browser.py
similarity index 100%
rename from weboob/backends/pastebin/browser.py
rename to modules/pastebin/browser.py
diff --git a/icons/pastebin.png b/modules/pastebin/favicon.png
similarity index 100%
rename from icons/pastebin.png
rename to modules/pastebin/favicon.png
diff --git a/weboob/backends/pastebin/pages.py b/modules/pastebin/pages.py
similarity index 100%
rename from weboob/backends/pastebin/pages.py
rename to modules/pastebin/pages.py
diff --git a/weboob/backends/pastebin/paste.py b/modules/pastebin/paste.py
similarity index 100%
rename from weboob/backends/pastebin/paste.py
rename to modules/pastebin/paste.py
diff --git a/weboob/backends/pastebin/test.py b/modules/pastebin/test.py
similarity index 100%
rename from weboob/backends/pastebin/test.py
rename to modules/pastebin/test.py
diff --git a/weboob/backends/phpbb/__init__.py b/modules/phpbb/__init__.py
similarity index 100%
rename from weboob/backends/phpbb/__init__.py
rename to modules/phpbb/__init__.py
diff --git a/weboob/backends/phpbb/backend.py b/modules/phpbb/backend.py
similarity index 100%
rename from weboob/backends/phpbb/backend.py
rename to modules/phpbb/backend.py
diff --git a/weboob/backends/phpbb/browser.py b/modules/phpbb/browser.py
similarity index 100%
rename from weboob/backends/phpbb/browser.py
rename to modules/phpbb/browser.py
diff --git a/icons/phpbb.png b/modules/phpbb/favicon.png
similarity index 100%
rename from icons/phpbb.png
rename to modules/phpbb/favicon.png
diff --git a/weboob/backends/phpbb/pages/__init__.py b/modules/phpbb/pages/__init__.py
similarity index 100%
rename from weboob/backends/phpbb/pages/__init__.py
rename to modules/phpbb/pages/__init__.py
diff --git a/weboob/backends/phpbb/pages/forum.py b/modules/phpbb/pages/forum.py
similarity index 100%
rename from weboob/backends/phpbb/pages/forum.py
rename to modules/phpbb/pages/forum.py
diff --git a/weboob/backends/phpbb/pages/index.py b/modules/phpbb/pages/index.py
similarity index 100%
rename from weboob/backends/phpbb/pages/index.py
rename to modules/phpbb/pages/index.py
diff --git a/weboob/backends/phpbb/test.py b/modules/phpbb/test.py
similarity index 100%
rename from weboob/backends/phpbb/test.py
rename to modules/phpbb/test.py
diff --git a/weboob/backends/phpbb/tools.py b/modules/phpbb/tools.py
similarity index 100%
rename from weboob/backends/phpbb/tools.py
rename to modules/phpbb/tools.py
diff --git a/weboob/backends/piratebay/__init__.py b/modules/piratebay/__init__.py
similarity index 100%
rename from weboob/backends/piratebay/__init__.py
rename to modules/piratebay/__init__.py
diff --git a/weboob/backends/piratebay/backend.py b/modules/piratebay/backend.py
similarity index 100%
rename from weboob/backends/piratebay/backend.py
rename to modules/piratebay/backend.py
diff --git a/weboob/backends/piratebay/browser.py b/modules/piratebay/browser.py
similarity index 100%
rename from weboob/backends/piratebay/browser.py
rename to modules/piratebay/browser.py
diff --git a/icons/piratebay.png b/modules/piratebay/favicon.png
similarity index 100%
rename from icons/piratebay.png
rename to modules/piratebay/favicon.png
diff --git a/weboob/backends/piratebay/pages/__init__.py b/modules/piratebay/pages/__init__.py
similarity index 100%
rename from weboob/backends/piratebay/pages/__init__.py
rename to modules/piratebay/pages/__init__.py
diff --git a/weboob/backends/piratebay/pages/index.py b/modules/piratebay/pages/index.py
similarity index 100%
rename from weboob/backends/piratebay/pages/index.py
rename to modules/piratebay/pages/index.py
diff --git a/weboob/backends/piratebay/pages/torrents.py b/modules/piratebay/pages/torrents.py
similarity index 100%
rename from weboob/backends/piratebay/pages/torrents.py
rename to modules/piratebay/pages/torrents.py
diff --git a/weboob/backends/piratebay/test.py b/modules/piratebay/test.py
similarity index 100%
rename from weboob/backends/piratebay/test.py
rename to modules/piratebay/test.py
diff --git a/weboob/backends/redmine/__init__.py b/modules/redmine/__init__.py
similarity index 100%
rename from weboob/backends/redmine/__init__.py
rename to modules/redmine/__init__.py
diff --git a/weboob/backends/redmine/backend.py b/modules/redmine/backend.py
similarity index 100%
rename from weboob/backends/redmine/backend.py
rename to modules/redmine/backend.py
diff --git a/weboob/backends/redmine/browser.py b/modules/redmine/browser.py
similarity index 100%
rename from weboob/backends/redmine/browser.py
rename to modules/redmine/browser.py
diff --git a/icons/redmine.png b/modules/redmine/favicon.png
similarity index 100%
rename from icons/redmine.png
rename to modules/redmine/favicon.png
diff --git a/weboob/backends/redmine/pages/__init__.py b/modules/redmine/pages/__init__.py
similarity index 100%
rename from weboob/backends/redmine/pages/__init__.py
rename to modules/redmine/pages/__init__.py
diff --git a/weboob/backends/redmine/pages/index.py b/modules/redmine/pages/index.py
similarity index 100%
rename from weboob/backends/redmine/pages/index.py
rename to modules/redmine/pages/index.py
diff --git a/weboob/backends/redmine/pages/issues.py b/modules/redmine/pages/issues.py
similarity index 100%
rename from weboob/backends/redmine/pages/issues.py
rename to modules/redmine/pages/issues.py
diff --git a/weboob/backends/redmine/pages/wiki.py b/modules/redmine/pages/wiki.py
similarity index 100%
rename from weboob/backends/redmine/pages/wiki.py
rename to modules/redmine/pages/wiki.py
diff --git a/weboob/backends/sfr/__init__.py b/modules/sfr/__init__.py
similarity index 100%
rename from weboob/backends/sfr/__init__.py
rename to modules/sfr/__init__.py
diff --git a/weboob/backends/sfr/backend.py b/modules/sfr/backend.py
similarity index 100%
rename from weboob/backends/sfr/backend.py
rename to modules/sfr/backend.py
diff --git a/weboob/backends/sfr/browser.py b/modules/sfr/browser.py
similarity index 100%
rename from weboob/backends/sfr/browser.py
rename to modules/sfr/browser.py
diff --git a/icons/sfr.png b/modules/sfr/favicon.png
similarity index 100%
rename from icons/sfr.png
rename to modules/sfr/favicon.png
diff --git a/weboob/backends/sfr/pages/__init__.py b/modules/sfr/pages/__init__.py
similarity index 100%
rename from weboob/backends/sfr/pages/__init__.py
rename to modules/sfr/pages/__init__.py
diff --git a/weboob/backends/sfr/pages/compose.py b/modules/sfr/pages/compose.py
similarity index 100%
rename from weboob/backends/sfr/pages/compose.py
rename to modules/sfr/pages/compose.py
diff --git a/weboob/backends/sfr/pages/login.py b/modules/sfr/pages/login.py
similarity index 100%
rename from weboob/backends/sfr/pages/login.py
rename to modules/sfr/pages/login.py
diff --git a/weboob/backends/sfr/test.py b/modules/sfr/test.py
similarity index 100%
rename from weboob/backends/sfr/test.py
rename to modules/sfr/test.py
diff --git a/weboob/backends/simplyreadit/__init__.py b/modules/simplyreadit/__init__.py
similarity index 100%
rename from weboob/backends/simplyreadit/__init__.py
rename to modules/simplyreadit/__init__.py
diff --git a/weboob/backends/simplyreadit/backend.py b/modules/simplyreadit/backend.py
similarity index 100%
rename from weboob/backends/simplyreadit/backend.py
rename to modules/simplyreadit/backend.py
diff --git a/weboob/backends/simplyreadit/test.py b/modules/simplyreadit/test.py
similarity index 100%
rename from weboob/backends/simplyreadit/test.py
rename to modules/simplyreadit/test.py
diff --git a/weboob/backends/societegenerale/__init__.py b/modules/societegenerale/__init__.py
similarity index 100%
rename from weboob/backends/societegenerale/__init__.py
rename to modules/societegenerale/__init__.py
diff --git a/weboob/backends/societegenerale/backend.py b/modules/societegenerale/backend.py
similarity index 100%
rename from weboob/backends/societegenerale/backend.py
rename to modules/societegenerale/backend.py
diff --git a/weboob/backends/societegenerale/browser.py b/modules/societegenerale/browser.py
similarity index 98%
rename from weboob/backends/societegenerale/browser.py
rename to modules/societegenerale/browser.py
index 67a45837e84ee8ea6fc566bfd8f2fe5609488398..6e0b64212abb436d21fc154a208c4773961cbf15 100644
--- a/weboob/backends/societegenerale/browser.py
+++ b/modules/societegenerale/browser.py
@@ -19,7 +19,7 @@
from weboob.tools.browser import BaseBrowser, BrowserIncorrectPassword
-from weboob.backends.societegenerale import pages
+from societegenerale import pages
__all__ = ['SocieteGenerale']
diff --git a/weboob/backends/societegenerale/captcha.py b/modules/societegenerale/captcha.py
similarity index 100%
rename from weboob/backends/societegenerale/captcha.py
rename to modules/societegenerale/captcha.py
diff --git a/icons/societegenerale.png b/modules/societegenerale/favicon.png
similarity index 100%
rename from icons/societegenerale.png
rename to modules/societegenerale/favicon.png
diff --git a/weboob/backends/societegenerale/pages/__init__.py b/modules/societegenerale/pages/__init__.py
similarity index 100%
rename from weboob/backends/societegenerale/pages/__init__.py
rename to modules/societegenerale/pages/__init__.py
diff --git a/weboob/backends/societegenerale/pages/accounts_list.py b/modules/societegenerale/pages/accounts_list.py
similarity index 100%
rename from weboob/backends/societegenerale/pages/accounts_list.py
rename to modules/societegenerale/pages/accounts_list.py
diff --git a/weboob/backends/societegenerale/pages/login.py b/modules/societegenerale/pages/login.py
similarity index 97%
rename from weboob/backends/societegenerale/pages/login.py
rename to modules/societegenerale/pages/login.py
index 24c45070123c9145dc68253fd8a8c59f7a563e59..5cc63a2e75a75faaf802426b0c4e1d49c1d06a97 100644
--- a/weboob/backends/societegenerale/pages/login.py
+++ b/modules/societegenerale/pages/login.py
@@ -21,7 +21,7 @@
from logging import error
from weboob.tools.browser import BasePage, BrowserUnavailable
-from weboob.backends.societegenerale.captcha import Captcha, TileError
+from societegenerale.captcha import Captcha, TileError
from lxml import etree
diff --git a/weboob/backends/societegenerale/test.py b/modules/societegenerale/test.py
similarity index 100%
rename from weboob/backends/societegenerale/test.py
rename to modules/societegenerale/test.py
diff --git a/weboob/backends/transilien/__init__.py b/modules/transilien/__init__.py
similarity index 100%
rename from weboob/backends/transilien/__init__.py
rename to modules/transilien/__init__.py
diff --git a/weboob/backends/transilien/backend.py b/modules/transilien/backend.py
similarity index 100%
rename from weboob/backends/transilien/backend.py
rename to modules/transilien/backend.py
diff --git a/weboob/backends/transilien/browser.py b/modules/transilien/browser.py
similarity index 100%
rename from weboob/backends/transilien/browser.py
rename to modules/transilien/browser.py
diff --git a/icons/transilien.png b/modules/transilien/favicon.png
similarity index 100%
rename from icons/transilien.png
rename to modules/transilien/favicon.png
diff --git a/weboob/backends/transilien/pages/__init__.py b/modules/transilien/pages/__init__.py
similarity index 100%
rename from weboob/backends/transilien/pages/__init__.py
rename to modules/transilien/pages/__init__.py
diff --git a/weboob/backends/transilien/pages/departures.py b/modules/transilien/pages/departures.py
similarity index 100%
rename from weboob/backends/transilien/pages/departures.py
rename to modules/transilien/pages/departures.py
diff --git a/weboob/backends/transilien/pages/roadmap.py b/modules/transilien/pages/roadmap.py
similarity index 100%
rename from weboob/backends/transilien/pages/roadmap.py
rename to modules/transilien/pages/roadmap.py
diff --git a/weboob/backends/transilien/pages/station.py b/modules/transilien/pages/station.py
similarity index 100%
rename from weboob/backends/transilien/pages/station.py
rename to modules/transilien/pages/station.py
diff --git a/weboob/backends/transilien/stations.py b/modules/transilien/stations.py
similarity index 100%
rename from weboob/backends/transilien/stations.py
rename to modules/transilien/stations.py
diff --git a/weboob/backends/transilien/test.py b/modules/transilien/test.py
similarity index 100%
rename from weboob/backends/transilien/test.py
rename to modules/transilien/test.py
diff --git a/weboob/backends/yahoo/__init__.py b/modules/yahoo/__init__.py
similarity index 100%
rename from weboob/backends/yahoo/__init__.py
rename to modules/yahoo/__init__.py
diff --git a/weboob/backends/yahoo/backend.py b/modules/yahoo/backend.py
similarity index 100%
rename from weboob/backends/yahoo/backend.py
rename to modules/yahoo/backend.py
diff --git a/icons/yahoo.png b/modules/yahoo/favicon.png
similarity index 100%
rename from icons/yahoo.png
rename to modules/yahoo/favicon.png
diff --git a/weboob/backends/yahoo/test.py b/modules/yahoo/test.py
similarity index 100%
rename from weboob/backends/yahoo/test.py
rename to modules/yahoo/test.py
diff --git a/weboob/backends/youjizz/__init__.py b/modules/youjizz/__init__.py
similarity index 100%
rename from weboob/backends/youjizz/__init__.py
rename to modules/youjizz/__init__.py
diff --git a/weboob/backends/youjizz/backend.py b/modules/youjizz/backend.py
similarity index 100%
rename from weboob/backends/youjizz/backend.py
rename to modules/youjizz/backend.py
diff --git a/weboob/backends/youjizz/browser.py b/modules/youjizz/browser.py
similarity index 100%
rename from weboob/backends/youjizz/browser.py
rename to modules/youjizz/browser.py
diff --git a/icons/youjizz.png b/modules/youjizz/favicon.png
similarity index 100%
rename from icons/youjizz.png
rename to modules/youjizz/favicon.png
diff --git a/weboob/backends/youjizz/pages/__init__.py b/modules/youjizz/pages/__init__.py
similarity index 100%
rename from weboob/backends/youjizz/pages/__init__.py
rename to modules/youjizz/pages/__init__.py
diff --git a/weboob/backends/youjizz/pages/index.py b/modules/youjizz/pages/index.py
similarity index 100%
rename from weboob/backends/youjizz/pages/index.py
rename to modules/youjizz/pages/index.py
diff --git a/weboob/backends/youjizz/pages/video.py b/modules/youjizz/pages/video.py
similarity index 100%
rename from weboob/backends/youjizz/pages/video.py
rename to modules/youjizz/pages/video.py
diff --git a/weboob/backends/youjizz/test.py b/modules/youjizz/test.py
similarity index 100%
rename from weboob/backends/youjizz/test.py
rename to modules/youjizz/test.py
diff --git a/weboob/backends/youjizz/video.py b/modules/youjizz/video.py
similarity index 100%
rename from weboob/backends/youjizz/video.py
rename to modules/youjizz/video.py
diff --git a/weboob/backends/youporn/__init__.py b/modules/youporn/__init__.py
similarity index 100%
rename from weboob/backends/youporn/__init__.py
rename to modules/youporn/__init__.py
diff --git a/weboob/backends/youporn/backend.py b/modules/youporn/backend.py
similarity index 100%
rename from weboob/backends/youporn/backend.py
rename to modules/youporn/backend.py
diff --git a/weboob/backends/youporn/browser.py b/modules/youporn/browser.py
similarity index 100%
rename from weboob/backends/youporn/browser.py
rename to modules/youporn/browser.py
diff --git a/icons/youporn.png b/modules/youporn/favicon.png
similarity index 100%
rename from icons/youporn.png
rename to modules/youporn/favicon.png
diff --git a/weboob/backends/youporn/pages/__init__.py b/modules/youporn/pages/__init__.py
similarity index 100%
rename from weboob/backends/youporn/pages/__init__.py
rename to modules/youporn/pages/__init__.py
diff --git a/weboob/backends/youporn/pages/base.py b/modules/youporn/pages/base.py
similarity index 100%
rename from weboob/backends/youporn/pages/base.py
rename to modules/youporn/pages/base.py
diff --git a/weboob/backends/youporn/pages/index.py b/modules/youporn/pages/index.py
similarity index 100%
rename from weboob/backends/youporn/pages/index.py
rename to modules/youporn/pages/index.py
diff --git a/weboob/backends/youporn/pages/video.py b/modules/youporn/pages/video.py
similarity index 100%
rename from weboob/backends/youporn/pages/video.py
rename to modules/youporn/pages/video.py
diff --git a/weboob/backends/youporn/test.py b/modules/youporn/test.py
similarity index 100%
rename from weboob/backends/youporn/test.py
rename to modules/youporn/test.py
diff --git a/weboob/backends/youporn/video.py b/modules/youporn/video.py
similarity index 100%
rename from weboob/backends/youporn/video.py
rename to modules/youporn/video.py
diff --git a/weboob/backends/youtube/__init__.py b/modules/youtube/__init__.py
similarity index 100%
rename from weboob/backends/youtube/__init__.py
rename to modules/youtube/__init__.py
diff --git a/weboob/backends/youtube/backend.py b/modules/youtube/backend.py
similarity index 100%
rename from weboob/backends/youtube/backend.py
rename to modules/youtube/backend.py
diff --git a/weboob/backends/youtube/browser.py b/modules/youtube/browser.py
similarity index 100%
rename from weboob/backends/youtube/browser.py
rename to modules/youtube/browser.py
diff --git a/icons/youtube.png b/modules/youtube/favicon.png
similarity index 100%
rename from icons/youtube.png
rename to modules/youtube/favicon.png
diff --git a/weboob/backends/youtube/pages.py b/modules/youtube/pages.py
similarity index 100%
rename from weboob/backends/youtube/pages.py
rename to modules/youtube/pages.py
diff --git a/weboob/backends/youtube/test.py b/modules/youtube/test.py
similarity index 100%
rename from weboob/backends/youtube/test.py
rename to modules/youtube/test.py
diff --git a/weboob/backends/youtube/video.py b/modules/youtube/video.py
similarity index 100%
rename from weboob/backends/youtube/video.py
rename to modules/youtube/video.py
diff --git a/scripts/weboob-repos b/scripts/weboob-repos
new file mode 100755
index 0000000000000000000000000000000000000000..afe09433fa16e84786b9c62b541680797e36e727
--- /dev/null
+++ b/scripts/weboob-repos
@@ -0,0 +1,27 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+# vim: ft=python et softtabstop=4 cinoptions=4 shiftwidth=4 ts=4 ai
+
+# Copyright(C) 2012 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