Skip to content
Commits on Source (20)
......@@ -417,4 +417,4 @@ Damien Cassou <damien@cassou.me>
Discover how to contribute to this great software:
http://dev.weboob.org/guides/contribute
http://dev.woob.tech/guides/contribute
......@@ -14,9 +14,9 @@ a lot of duplicate work.
Write a patch
-------------
Help yourself with the [documentation](http://docs.weboob.org/).
Help yourself with the [documentation](http://docs.woob.tech/).
Find an opened issue on [this website](https://git.weboob.org/weboob/weboob/issues),
Find an opened issue on [this website](https://git.woob.tech/weboob/weboob/issues),
or write your own bugfix or feature. Then, once it is necessary, commit with:
$ git commit -a
......@@ -36,14 +36,14 @@ You can run these scripts to be sure your patch doesn't break anything:
$ tools/run_tests.sh yourmodulename # or without yourmodulename to test everything
Perhaps you should also write or fix tests. These tests are automatically run by
[Gitlab CI](https://git.weboob.org/weboob/weboob/pipelines) at each commit and merge requests.
[Gitlab CI](https://git.woob.tech/weboob/weboob/pipelines) at each commit and merge requests.
Create a merge request or send a patch
--------------------------------------
The easiest way to send your patch is to create a fork on [the Weboob
Gitlab](https://git.weboob.org) and create a merge request from there.
Gitlab](https://git.woob.tech) and create a merge request from there.
This way, the code review process is easier and continuous integration is run
automatically (see previous section).
......@@ -53,7 +53,7 @@ If you prefer good old email patches, just use
Then, send them with this command:
$ git send-email --to=weboob@weboob.org *.patch
$ git send-email --to=weboob@woob.tech *.patch
You can also send the files by yourself if you haven't any configured MTA on your system.
......@@ -62,7 +62,7 @@ Notes on merging a merge request
--------------------------------
Few people (members of the [Weboob group on this
repo](https://git.weboob.org/groups/weboob/group_members)) have the right to
repo](https://git.woob.tech/groups/weboob/group_members)) have the right to
merge a MR.
Anyone is welcome to review and comment pending merge requests. A merge
......
......@@ -2,7 +2,7 @@ Woob installation
=================
Using the packages provided by your distribution is recommended.
See http://weboob.org/install for a list of available packages.
See http://woob.tech/install for a list of available packages.
Since there are many dependencies, when you install from sources,
you have to handle them by hand, according to your distribution.
......
......@@ -28,7 +28,7 @@ modules and applications.
## Installation
Installation is described on [the website](http://woob.tech) or in the
Installation is described on [the website](https://woob.tech) or in the
[INSTALL](INSTALL) file.
## License
......@@ -37,10 +37,10 @@ Woob is written in Python and is distributed under the LGPLv3+ license.
## Documentation
For more information, please go to [the official website](http://woob.tech/).
For more information, please go to [the official website](https://woob.tech/).
Some extra info is available in the [Gitlab
wiki](https://git.weboob.org/weboob/devel/wikis/home).
wiki](https://git.woob.tech/weboob/devel/wikis/home).
If you are a developper and looking for how to write a module or contribute to
Woob, you can have a look at the [developper documentation](http://dev.weboob.org/).
Woob, you can have a look at the [developper documentation](https://dev.woob.tech/).
......@@ -61,9 +61,9 @@ qthelp:
@echo
@echo "Build finished; now you can run "qcollectiongenerator" with the" \
".qhcp project file in $(BUILDDIR)/qthelp, like this:"
@echo "# qcollectiongenerator $(BUILDDIR)/qthelp/Weboob.qhcp"
@echo "# qcollectiongenerator $(BUILDDIR)/qthelp/woob.qhcp"
@echo "To view the help file:"
@echo "# assistant -collectionFile $(BUILDDIR)/qthelp/Weboob.qhc"
@echo "# assistant -collectionFile $(BUILDDIR)/qthelp/woob.qhc"
latex:
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
......
......@@ -74,9 +74,9 @@ if "%1" == "qthelp" (
echo.
echo.Build finished; now you can run "qcollectiongenerator" with the ^
.qhcp project file in %BUILDDIR%/qthelp, like this:
echo.^> qcollectiongenerator %BUILDDIR%\qthelp\Weboob.qhcp
echo.^> qcollectiongenerator %BUILDDIR%\qthelp\woob.qhcp
echo.To view the help file:
echo.^> assistant -collectionFile %BUILDDIR%\qthelp\Weboob.ghc
echo.^> assistant -collectionFile %BUILDDIR%\qthelp\woob.ghc
goto end
)
......
......@@ -5,19 +5,19 @@
{% block body %}
<h1>{{ docstitle|e }}</h1>
<p>
{% trans %}Welcome! This is the documentation for Weboob {{ release }}{% endtrans %}
{% trans %}Welcome! This is the documentation for woob {{ release }}{% endtrans %}
</p>
<div class="admonition note">
<p class="first admonition-title">Note</p>
<p class="last">This is the developer documentation. If you are not a developer and you are looking for information about the project, check the <a href="http://weboob.org" class="reference external">official website</a>.</p>
<p class="last">This is the developer documentation. If you are not a developer and you are looking for information about the project, check the <a href="http://woob.tech" class="reference external">official website</a>.</p>
</div>
<p><strong>Hello world:</strong></p>
<table class="contentstable" align="center"><tr>
<td width="50%">
<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">weboob.core</span> <span class="kn">import</span> <span class="n">Weboob</span>
<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">weboob.capabilities.bank</span> <span class="kn">import</span> <span class="n">CapBank</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">w</span> <span class="o">=</span> <span class="n">Weboob</span><span class="p">()</span>
<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">woob.core</span> <span class="kn">import</span> <span class="n">Woob</span>
<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">woob.capabilities.bank</span> <span class="kn">import</span> <span class="n">CapBank</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">w</span> <span class="o">=</span> <span class="n">Woob</span><span class="p">()</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">w</span><span class="o">.</span><span class="n">load_backends</span><span class="p">(</span><span class="n">CapBank</span><span class="p">)</span>
<span class="go">{'societegenerale': &lt;Backend 'societegenerale'&gt;, 'creditmutuel': &lt;Backend 'creditmutuel'&gt;}</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">pprint</span><span class="p">(</span><span class="nb">list</span><span class="p">(</span><span class="n">w</span><span class="o">.</span><span class="n">iter_accounts</span><span class="p">()))</span>
......@@ -56,9 +56,9 @@
<table class="contentstable" align="center"><tr>
<td width="50%">
<p class="biglink"><a class="biglink" href="{{ pathto("guides/setup") }}">Setup your development environment</a><br/>
<span class="linkdescr">configure your environment to develop on Weboob</span></p>
<span class="linkdescr">configure your environment to develop on woob</span></p>
<p class="biglink"><a class="biglink" href="{{ pathto("guides/module") }}">Write a new module</a><br/>
<span class="linkdescr">add a website support in Weboob</span></p>
<span class="linkdescr">add a website support in woob</span></p>
<p class="biglink"><a class="biglink" href="{{ pathto("guides/cookbook") }}">Cookbook</a><br/>
<span class="linkdescr">recipes for common actions</span></p>
</td><td width="50%">
......
<h3>Other resources</h3>
<ul>
<li><a href="http://weboob.org/">Official website</a></li>
<li><a href="https://git.weboob.org/weboob/weboob/issues">Bug Tracker</a></li>
<li><a href="https://symlink.me/projects/weboob/files">Download stable version</a></li>
<li><a href="https://woob.tech/">Official website</a></li>
<li><a href="https://git.woob.tech/woob/woob/issues">Bug Tracker</a></li>
<li><a href="https://git.woob.tech/woob/woob/-/tags">Download stable version</a></li>
</ul>
# -*- coding: utf-8 -*-
#
# Weboob documentation build configuration file, created by
# woob documentation build configuration file, created by
# sphinx-quickstart on Thu Nov 25 11:56:52 2010.
#
# This file is execfile()d with the current directory set to its containing dir.
......@@ -37,11 +37,11 @@
#source_encoding = 'utf-8'
# The master toctree document.
#master_doc = 'index'
master_doc = 'index'
# General information about the project.
project = u'Weboob'
copyright = '2010-%s, The Weboob Team' % time.strftime('%Y')
project = u'woob'
copyright = '2010-%s, The Woob Team' % time.strftime('%Y')
# The version info for the project you're documenting, acts as replacement for
# |version| and |release|, also used in various other places throughout the
......@@ -108,7 +108,7 @@
# The name for this set of Sphinx documents. If None, it defaults to
# "<project> v<release> documentation".
#html_title = 'Weboob development'
#html_title = 'Woob development'
# A shorter title for the navigation bar. Default is the same as html_title.
#html_short_title = None
......@@ -167,7 +167,7 @@
#html_file_suffix = ''
# Output file base name for HTML help builder.
htmlhelp_basename = 'weboob' + release.replace('.', '')
htmlhelp_basename = 'woob' + release.replace('.', '')
# -- Options for LaTeX output --------------------------------------------------
......@@ -181,8 +181,8 @@
# Grouping the document tree into LaTeX files. List of tuples
# (source start file, target name, title, author, documentclass [howto/manual]).
latex_documents = [
('index', 'Weboob.tex', u'Weboob Documentation',
u'Weboob Team', 'manual'),
('index', 'woob.tex', u'Woob Documentation',
u'Woob Team', 'manual'),
]
# The name of an image file (relative to this directory) to place at the top of
......
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Weboob Documentation contents
Woob Documentation contents
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
.. toctree::
......
......@@ -9,14 +9,14 @@ def genapi():
os.chdir('api')
for root, dirs, files in os.walk('../../../weboob/'):
root = root.split('/', 4)[-1]
if root.startswith('applications'):
if root.startswith('applications') or root.startswith('__'):
continue
if root.strip():
os.system('mkdir -p %s' % root)
module = '.'.join(['weboob'] + root.split('/'))
module = '.'.join(['woob'] + root.split('/'))
else:
module = 'weboob'
module = 'woob'
subs = set()
for f in files:
......@@ -45,7 +45,7 @@ def genapi():
subs.add('%s/index' % d)
with open(os.path.join(root, 'index.rst'), 'w') as fp:
if module == 'weboob':
if module == 'woob':
m = 'API'
else:
m = ':mod:`%s`' % module
......
......@@ -30,7 +30,7 @@ isn't available yet.
A field which isn't loaded can be set to :class:`woob.capabilities.base.NotLoaded`.
By default, in the object constructor, every fields should be set to
:class:`NotLoaded <weboob.capabilities.base.NotLoaded>`, and when the backend loads them, it replaces them with
:class:`NotLoaded <woob.capabilities.base.NotLoaded>`, and when the backend loads them, it replaces them with
the new values.
......@@ -7,9 +7,9 @@ By coding
Write a patch
-------------
Help yourself with the `documentation <http://docs.weboob.org/>`_.
Help yourself with the `documentation <http://docs.woob.tech/>`_.
Find an opened issue on `this website <https://git.weboob.org/weboob/weboob/issues>`_, or write your own bugfix or feature.
Find an opened issue on `this website <https://git.woob.tech/woob/woob/issues>`_, or write your own bugfix or feature.
Then, once it is necessary, commit with::
$ git commit -a
......@@ -31,12 +31,12 @@ To aid in verifying Python 3 compatibility, also run::
$ tools/run_tests.sh -3 yourmodulename
Perhaps you should also write or fix tests. These tests are automatically run by
`Gitlab CI <https://git.weboob.org/weboob/weboob/pipelines>`_ at each commit and merge requests.
`Gitlab CI <https://git.woob.tech/woob/woob/pipelines>`_ at each commit and merge requests.
Create a merge request or send a patch
--------------------------------------
The easiest way to send your patch is to create a fork on `the Weboob Gitlab <https://git.weboob.org>`_ and create a merge
The easiest way to send your patch is to create a fork on `the woob gitlab <https://git.woob.tech>`_ and create a merge
request from there. This way, the code review process is easier and continuous integration is run automatically (see
previous section).
......@@ -45,11 +45,11 @@ previous section).
Using the ``git+ssh`` protocol to clone the repository will only work when connected from an
IPv6 compatible network:
`$ git clone gitlab@git.weboob.org:weboob/weboob.git`
`$ git clone gitlab@git.woob.tech:woob/woob.git`
But it is possible to use the ``git+https`` protocol from everywhere (IPv4 and IPv6 networks):
`$ git clone https://git.weboob.org/weboob/weboob.git`
`$ git clone https://git.woob.tech/woob/woob.git`
If you prefer good old email patches, just use
......@@ -59,14 +59,14 @@ If you prefer good old email patches, just use
Then, send them with this command::
$ git send-email --to=weboob@weboob.org *.patch
$ git send-email --to=woob@woob.tech *.patch
You can also send the files by yourself if you haven't any configured MTA on your system.
By hosting a Gitlab CI runner
*****************************
To be sure weboob works fine on lot of architectures, OS and configurations, but also that websites haven't changed and
To be sure woob works fine on lot of architectures, OS and configurations, but also that websites haven't changed and
backends still support them, it's important to have enough runners with different configurations, especially since
running some tests requires a working backend.
......@@ -76,4 +76,4 @@ You can `install a Gitlab runner <https://docs.gitlab.com/runner/install/>`_ and
it either by creating a dedicated Docker image with your credentials or running it in ``shell`` mode and making the
backend file available to it).
Then, you should contact us at admin@weboob.org so that we could help you register your runner with our Gitlab.
Then, you should contact us at admin@woob.tech so that we could help you register your runner with our Gitlab.
Write a new module
==================
This guide aims to learn how to write a new module for `Weboob <http://weboob.org>`_.
This guide aims to learn how to write a new module for `woob <http://woob.tech>`_.
Before read it, you should :doc:`setup your development environment </guides/setup>`.
What is a module
****************
A module is an interface between a website and Weboob. It represents the python code which is stored
A module is an interface between a website and woob. It represents the python code which is stored
in repositories.
Weboob applications need *backends* to interact with websites. A *backend* is an instance of a *module*, usually
woob applications need *backends* to interact with websites. A *backend* is an instance of a *module*, usually
with several parameters like your username, password, or other options. You can create multiple *backends*
for a single *module*.
......@@ -79,13 +79,13 @@ In a module directory, there are commonly these files:
Update modules list
-------------------
As you are in development mode, to see your new module in ``weboob-config``'s list, you have to update ``modules/modules.list`` with this command::
As you are in development mode, to see your new module in ``woob config``'s list, you have to update ``modules/modules.list`` with this command::
$ weboob update
$ woob config update
To be sure your module is correctly added, use this command::
$ weboob-config info example
$ woob config info example
.------------------------------------------------------------------------------.
| Module example |
+-----------------.------------------------------------------------------------'
......@@ -95,7 +95,7 @@ To be sure your module is correctly added, use this command::
| Description | Example bank website
| Capabilities | CapBank, CapCollection
| Installed | yes
| Location | /home/me/src/weboob/modules/example
| Location | /home/me/src/woob/modules/example
'-----------------'
If the last command does not work, check your :doc:`repositories setup
......@@ -103,7 +103,7 @@ If the last command does not work, check your :doc:`repositories setup
module, you should take great care of setting your development environment
correctly, or your changes to the module will not have any effect. You can also
use ``./tools/local_run.sh`` script as a quick and dirty method of forcing
Weboob applications to use local modules rather than remote ones.
woob applications to use local modules rather than remote ones.
Module class
......@@ -111,8 +111,8 @@ Module class
Edit ``module.py``. It contains the main class of the module derived from :class:`~woob.tools.backend.Module` class::
from weboob.tools.backend import Module
from weboob.capabilities.bank import CapBank
from woob.tools.backend import Module
from woob.capabilities.bank import CapBank
class ExampleModule(Module, CapBank):
NAME = 'example' # The name of module
......@@ -120,7 +120,7 @@ Edit ``module.py``. It contains the main class of the module derived from :class
MAINTAINER = u'John Smith' # Name of maintainer of this module
EMAIL = 'john.smith@example.com' # Email address of the maintainer
LICENSE = 'LGPLv3+' # License of your module
# Version of weboob
# Version of woob
VERSION = '2.1'
In the code above, you can see that your ``ExampleModule`` inherits :class:`~woob.capabilities.bank.base.CapBank`, as
......@@ -152,13 +152,13 @@ Available parameters of :class:`~woob.tools.value.Value` are:
.. note::
Other classes are available to store specific types of configuration options. See :mod:`woob.tools.value
<weboob.tools.value>` for a full list of them.
<woob.tools.value>` for a full list of them.
For example::
from weboob.tools.backend import Module, BackendConfig
from weboob.capabilities.bank import CapBank
from weboob.tools.value import Value, ValueBool, ValueInt, ValueBackendPassword
from woob.tools.backend import Module, BackendConfig
from woob.capabilities.bank import CapBank
from woob.tools.value import Value, ValueBool, ValueInt, ValueBackendPassword
# ...
class ExampleModule(Module, CapBank):
......@@ -177,8 +177,8 @@ Implement capabilities
You need to implement each method of all of the capabilities your module implements. For example, in our case::
from weboob.tools.backend import Module
from weboob.capabilities.bank import CapBank
from woob.tools.backend import Module
from woob.capabilities.bank import CapBank
# ...
class ExampleModule(Module, CapBank):
......@@ -198,7 +198,7 @@ You need to implement each method of all of the capabilities your module impleme
If you ran the ``boilerplate`` script command ``cap``, every methods are already in ``module.py`` and documented.
Read :class:`documentation of the capability <weboob.capabilities.bank.base.CapBank>` to know what are types of arguments,
Read :class:`documentation of the capability <woob.capabilities.bank.base.CapBank>` to know what are types of arguments,
what are expected returned objects, and what exceptions it may raise.
When you are done writing your module, you should remove all the not implemented methods from your module, as the base
......@@ -216,7 +216,7 @@ Edit ``browser.py``::
# -*- coding: utf-8 -*-
from weboob.browser import PagesBrowser
from woob.browser import PagesBrowser
__all__ = ['ExampleBrowser']
......@@ -244,7 +244,7 @@ In the file ``pages.py``, you can write, for example::
# -*- coding: utf-8 -*-
from weboob.browser.pages import HTMLPage
from woob.browser.pages import HTMLPage
__all__ = ['IndexPage', 'ListPage']
......@@ -260,7 +260,7 @@ which list accounts.
Then, you have to declare them in your browser, with the :class:`~woob.browser.url.URL` object::
from weboob.browser import PagesBrowser, URL
from woob.browser import PagesBrowser, URL
from .pages import IndexPage, ListPage
# ...
......@@ -281,7 +281,7 @@ Each time you will go on the home page, ``IndexPage`` will be instanced and set
For example, we can now implement some methods in ``ExampleBrowser``::
from weboob.browser import PagesBrowser
from woob.browser import PagesBrowser
class ExampleBrowser(PagesBrowser):
# ...
......@@ -306,8 +306,8 @@ Use it in backend
Now you have a functional browser, you can use it in your class ``ExampleModule`` by defining it with the ``BROWSER`` attribute::
from weboob.tools.backend import Module
from weboob.capabilities.bank import CapBank
from woob.tools.backend import Module
from woob.capabilities.bank import CapBank
from .browser import ExampleBrowser
......@@ -318,7 +318,7 @@ Now you have a functional browser, you can use it in your class ``ExampleModule`
You can now access it with member ``browser``. The class is instanced at the first call to this attribute.
For example, we can now implement :func:`CapBank.iter_accounts <weboob.capabilities.bank.base.CapBank.iter_accounts>`::
For example, we can now implement :func:`CapBank.iter_accounts <woob.capabilities.bank.base.CapBank.iter_accounts>`::
def iter_accounts(self):
return self.browser.iter_accounts_list()
......@@ -331,8 +331,8 @@ Login management
When the website requires to be authenticated, you have to give credentials to the constructor of the browser. You can redefine
the method :func:`~woob.tools.backend.Module.create_default_browser`::
from weboob.tools.backend import Module
from weboob.capabilities.bank import CapBank
from woob.tools.backend import Module
from woob.capabilities.bank import CapBank
class ExampleModule(Module, CapBank):
# ...
......@@ -342,8 +342,8 @@ the method :func:`~woob.tools.backend.Module.create_default_browser`::
On the browser side, you need to inherit from :func:`~woob.browser.browsers.LoginBrowser` and to implement the function
:func:`~woob.browser.browsers.LoginBrowser.do_login`::
from weboob.browser import LoginBrowser
from weboob.exceptions import BrowserIncorrectPassword
from woob.browser import LoginBrowser
from woob.exceptions import BrowserIncorrectPassword
class ExampleBrowser(LoginBrowser):
login = URL('/login', LoginPage)
......@@ -361,7 +361,7 @@ You may provide a custom :func:`~woob.browser.browsers.LoginBrowser.do_logout` f
Also, your ``LoginPage`` may look like::
from weboob.browser.pages import HTMLPage
from woob.browser.pages import HTMLPage
class LoginPage(HTMLPage):
def login(self, username, password):
......@@ -372,8 +372,8 @@ Also, your ``LoginPage`` may look like::
Then, each method on your browser which needs your user to be authenticated may be decorated by :func:`~woob.browser.browsers.need_login`::
from weboob.browser import LoginBrowser, URL
from weboob.browser import need_login
from woob.browser import LoginBrowser, URL
from woob.browser import need_login
class ExampleBrowser(LoginBrowser):
accounts = URL('/accounts$', ListPage)
......@@ -391,7 +391,7 @@ decorated method.
You can either define it yourself, as a class boolean attribute or as a property, or inherit your class from :class:`~woob.browser.pages.LoggedPage`.
In the latter case, remember that Python inheritance requires the :class:`~woob.browser.pages.LoggedPage` to be placed first such as in::
from weboob.browser.pages import LoggedPage, HTMLPage
from woob.browser.pages import LoggedPage, HTMLPage
class OnlyForLoggedUserPage(LoggedPage, HTMLPage):
# ...
......@@ -417,11 +417,11 @@ construct the object.
For example::
from weboob.browser.pages import LoggedPage, HTMLPage
from weboob.browser.filters.html import Attr
from weboob.browser.filters.standard import CleanDecimal, CleanText
from weboob.capabilities.bank import Account
from weboob.browser.elements import method, ListElement, ItemElement
from woob.browser.pages import LoggedPage, HTMLPage
from woob.browser.filters.html import Attr
from woob.browser.filters.standard import CleanDecimal, CleanText
from woob.capabilities.bank import Account
from woob.browser.elements import method, ListElement, ItemElement
class ListPage(LoggedPage, HTMLPage):
@method
......@@ -496,7 +496,7 @@ Your module is now functional and you can use this command::
.. note::
You can pass ``-a`` command-line argument to any Weboob application to log
You can pass ``-a`` command-line argument to any woob application to log
all the possible debug output (including requests and their parameters, raw
responses and loaded HTML pages) in a temporary directory, indicated at the
launch of the program.
......@@ -510,7 +510,7 @@ breaks the behavior of the module.
Edit ``test.py`` and write, for example::
# -*- coding: utf-8 -*-
from weboob.tools.test import BackendTest
from woob.tools.test import BackendTest
__all__ = ['ExampleTest']
......@@ -555,8 +555,8 @@ method associated to the type of the object.
To define what objects are supported to be filled, and what method to call, define the ``OBJECTS``
class attribute in your ``ExampleModule``::
from weboob.tools.backend import Module
from weboob.capabilities.video import CapVideo
from woob.tools.backend import Module
from woob.capabilities.video import CapVideo
class ExampleModule(Module, CapVideo):
# ...
......@@ -569,8 +569,8 @@ The prototype of the function might be::
Then, the function might, for each requested fields, fetch the right data and fill the object. For example::
from weboob.tools.backend import Module
from weboob.capabilities.video import CapVideo
from woob.tools.backend import Module
from woob.capabilities.video import CapVideo
class ExampleModule(Module, CapVideo):
# ...
......@@ -581,7 +581,7 @@ Then, the function might, for each requested fields, fetch the right data and fi
return video
Here, when the application has got a :class:`Video <weboob.capabilities.video.BaseVideo>` object with
Here, when the application has got a :class:`Video <woob.capabilities.video.BaseVideo>` object with
:func:`~woob.capabilities.video.CapVideo.search_videos`, in most cases, there are only some meta-data, but not the direct link to the video media.
As our method :func:`~woob.capabilities.video.CapVideo.get_video` will get all
......
Setup your development environment
==================================
To develop on Weboob, you have to setup a development environment.
To develop on woob, you have to setup a development environment.
Git installation
----------------
Clone a git repository with this command::
$ git clone https://git.weboob.org/weboob/weboob.git
$ git clone https://git.woob.tech/woob/woob.git
We don't want to install Weboob on the whole system, so we create local directories where
We don't want to install woob on the whole system, so we create local directories where
we will put symbolic links to sources::
$ cd $HOME/src/weboob
$ cd $HOME/src/woob
If not in a virtualenv, executables are in ``~/.local/bin`` and modules are in
``~/.local/lib/``:
......@@ -28,20 +28,20 @@ If inside a virtualenv, no need to update the paths, they are all in the virtual
Repositories setup
------------------
As you may know, Weboob installs modules from `remote repositories <http://weboob.org/modules>`_. As you
As you may know, woob installs modules from `remote repositories <http://woob.tech/modules>`_. As you
probably want to use modules in sources instead of stable ones, because you will change them, or create
a new one, you have to add this line at end of ``~/.config/weboob/sources.list``::
a new one, you have to add this line at end of ``~/.config/woob/sources.list``::
file:///home/me/src/weboob/modules
file:///home/me/src/woob/modules
Then, run this command::
$ weboob-config update
$ woob config update
Run Weboob without installation
Run woob without installation
-------------------------------
This does not actually install anything, but lets you run Weboob from the source code,
This does not actually install anything, but lets you run woob from the source code,
while also using the modules from that source::
$ ./tools/local_run.sh APPLICATION COMMANDS
......
......@@ -21,7 +21,7 @@ Then, it run every method which name starts with ``test_``.
.. note::
Some environment variables are available, to use specific backend file or send the test results. Refer to `the
comments in the script <https://git.weboob.org/weboob/weboob/blob/master/tools/run_tests.sh#L4-8>`_ for more infos on this.
comments in the script <https://git.woob.tech/weboob/weboob/blob/master/tools/run_tests.sh#L4-8>`_ for more infos on this.
If a module name is passed as argument, only this module will be tested. For example, to only run ``lutim`` tests::
......
.\" -*- coding: utf-8 -*-
.\" This file was generated automatically by tools/make_man.sh.
.TH QBOOBLYRICS 1 "27 February 2019" "qbooblyrics 1\&.5"
.SH NAME
qbooblyrics \- search lyrics
.SH SYNOPSIS
.B qbooblyrics
[\-h] [\-dqv] [\-b \fIbackends\fR] ...
.br
.B qbooblyrics
[\-\-help] [\-\-version]
.SH DESCRIPTION
.LP
Qt application allowing to search song lyrics.
.SS Supported websites:
* lyricsdotcom (Lyrics.com lyrics website)
.br
* lyricsmode (Lyricsmode.com lyrics website)
.br
* lyricsplanet (Lyricsplanet.com song lyrics website)
.br
* paroles2chansons (Paroles2chansons.com song lyrics website)
.br
* parolesmania (Paroles Mania lyrics website)
.br
* parolesmusique (paroles\-musique lyrics website)
.br
* parolesnet (paroles.net lyrics website)
.SH OPTIONS
.TP
\fB\-\-version\fR
show program's version number and exit
.TP
\fB\-h\fR, \fB\-\-help\fR
show this help message and exit
.TP
\fB\-b BACKENDS\fR, \fB\-\-backends=BACKENDS\fR
what backend(s) to enable (comma separated)
.TP
\fB\-e EXCLUDE_BACKENDS\fR, \fB\-\-exclude\-backends=EXCLUDE_BACKENDS\fR
what backend(s) to exclude (comma separated)
.TP
\fB\-I\fR, \fB\-\-insecure\fR
do not validate SSL
.TP
\fB\-\-nss\fR
Use NSS instead of OpenSSL
.SH LOGGING OPTIONS
.TP
\fB\-d\fR, \fB\-\-debug\fR
display debug messages. Set up it twice to more verbosity
.TP
\fB\-q\fR, \fB\-\-quiet\fR
display only error messages
.TP
\fB\-v\fR, \fB\-\-verbose\fR
display info messages
.TP
\fB\-\-logging\-file=LOGGING_FILE\fR
file to save logs
.TP
\fB\-a\fR, \fB\-\-save\-responses\fR
save every response
.TP
\fB\-\-export\-session\fR
log browser session cookies after login
.SH CONDITION
The \-c and \-\-condition is a flexible way to filter and get only interesting results. It supports conditions on numerical values, dates, durations and strings. Dates are given in YYYY\-MM\-DD or YYYY\-MM\-DD HH:MM format. Durations look like XhYmZs where X, Y and Z are integers. Any of them may be omitted. For instance, YmZs, XhZs or Ym are accepted.
The syntax of one expression is "\fBfield operator value\fR". The field to test is always the left member of the expression.
.LP
The field is a member of the objects returned by the command. For example, a bank account has "balance", "coming" or "label" fields.
.SS The following operators are supported:
.TP
=
Test if object.field is equal to the value.
.TP
!=
Test if object.field is not equal to the value.
.TP
>
Test if object.field is greater than the value. If object.field is date, return true if value is before that object.field.
.TP
<
Test if object.field is less than the value. If object.field is date, return true if value is after that object.field.
.TP
|
This operator is available only for string fields. It works like the Unix standard \fBgrep\fR command, and returns True if the pattern specified in the value is in object.field.
.SS Expression combination
.LP
You can make a expression combinations with the keywords \fB" AND "\fR, \fB" OR "\fR an \fB" LIMIT "\fR.
.LP
The \fBLIMIT\fR keyword can be used to limit the number of items upon which running the expression. \fBLIMIT\fR can only be placed at the end of the expression followed by the number of elements you want.
.SS Examples:
.nf
.B boobank ls \-\-condition 'label=Livret A'
.fi
Display only the "Livret A" account.
.PP
.nf
.B boobank ls \-\-condition 'balance>10000'
.fi
Display accounts with a lot of money.
.PP
.nf
.B boobank history account@backend \-\-condition 'label|rewe'
.fi
Get transactions containing "rewe".
.PP
.nf
.B boobank history account@backend \-\-condition 'date>2013\-12\-01 AND date<2013\-12\-09'
.fi
Get transactions betweens the 2th December and 8th December 2013.
.PP
.nf
.B boobank history account@backend \-\-condition 'date>2013\-12\-01 LIMIT 10'
.fi
Get transactions after the 2th December in the last 10 transactions
.SH COPYRIGHT
Copyright(C) 2016 Julien Veyssier
.LP
For full copyright information see the COPYING file in the weboob package.
.LP
.RE
.SH FILES
"~/.config/weboob/backends"
"~/.config/weboob/qbooblyrics"
.SH SEE ALSO
Home page: http://weboob.org/applications/qbooblyrics
.\" -*- coding: utf-8 -*-
.\" This file was generated automatically by tools/make_man.sh.
.TH QBOOBMSG 1 "27 February 2019" "qboobmsg 1\&.5"
.SH NAME
qboobmsg \- send and receive message threads
.SH SYNOPSIS
.B qboobmsg
[\-h] [\-dqv] [\-b \fIbackends\fR] ...
.br
.B qboobmsg
[\-\-help] [\-\-version]
.SH DESCRIPTION
.LP
Qt application allowing to read messages on various websites and reply to them.
.SS Supported websites:
* aum ("Adopte un Mec" French dating website)
.br
* blogspot (Blog reader for blogspot. Read\-only and without comments.)
.br
* bnporc (BNP Paribas)
.br
* bouygues (Bouygues Télécom French mobile phone provider)
.br
* dlfp (Da Linux French Page news website)
.br
* feedly (handle the popular RSS reading service Feedly)
.br
* freemobile (Free Mobile website)
.br
* guerrillamail (GuerrillaMail temp mailbox)
.br
* happn (Happn dating mobile application)
.br
* hds (Histoires de Sexe French erotic novels)
.br
* inrocks (Les Inrocks French news website)
.br
* lefigaro (Le Figaro French newspaper website)
.br
* liberation (Libération newspaper website)
.br
* mailinator (mailinator temp mailbox)
.br
* minutes20 (20 Minutes French newspaper website)
.br
* newsfeed (Loads RSS and Atom feeds from any website)
.br
* okc (OkCupid)
.br
* openedx (Discussions on OpenEDX\-powered coursewares)
.br
* phpbb (phpBB forum)
.br
* playme (PlayMe dating mobile application)
.br
* presseurop (Presseurop website)
.br
* reddit (reddit website)
.br
* tapatalk (Tapatalk\-compatible sites)
.br
* taz (Taz newspaper website)
.br
* tinder (Tinder dating mobile application)
.br
* twitter (twitter website)
.SH OPTIONS
.TP
\fB\-\-version\fR
show program's version number and exit
.TP
\fB\-h\fR, \fB\-\-help\fR
show this help message and exit
.TP
\fB\-b BACKENDS\fR, \fB\-\-backends=BACKENDS\fR
what backend(s) to enable (comma separated)
.TP
\fB\-e EXCLUDE_BACKENDS\fR, \fB\-\-exclude\-backends=EXCLUDE_BACKENDS\fR
what backend(s) to exclude (comma separated)
.TP
\fB\-I\fR, \fB\-\-insecure\fR
do not validate SSL
.TP
\fB\-\-nss\fR
Use NSS instead of OpenSSL
.SH LOGGING OPTIONS
.TP
\fB\-d\fR, \fB\-\-debug\fR
display debug messages. Set up it twice to more verbosity
.TP
\fB\-q\fR, \fB\-\-quiet\fR
display only error messages
.TP
\fB\-v\fR, \fB\-\-verbose\fR
display info messages
.TP
\fB\-\-logging\-file=LOGGING_FILE\fR
file to save logs
.TP
\fB\-a\fR, \fB\-\-save\-responses\fR
save every response
.TP
\fB\-\-export\-session\fR
log browser session cookies after login
.SH CONDITION
The \-c and \-\-condition is a flexible way to filter and get only interesting results. It supports conditions on numerical values, dates, durations and strings. Dates are given in YYYY\-MM\-DD or YYYY\-MM\-DD HH:MM format. Durations look like XhYmZs where X, Y and Z are integers. Any of them may be omitted. For instance, YmZs, XhZs or Ym are accepted.
The syntax of one expression is "\fBfield operator value\fR". The field to test is always the left member of the expression.
.LP
The field is a member of the objects returned by the command. For example, a bank account has "balance", "coming" or "label" fields.
.SS The following operators are supported:
.TP
=
Test if object.field is equal to the value.
.TP
!=
Test if object.field is not equal to the value.
.TP
>
Test if object.field is greater than the value. If object.field is date, return true if value is before that object.field.
.TP
<
Test if object.field is less than the value. If object.field is date, return true if value is after that object.field.
.TP
|
This operator is available only for string fields. It works like the Unix standard \fBgrep\fR command, and returns True if the pattern specified in the value is in object.field.
.SS Expression combination
.LP
You can make a expression combinations with the keywords \fB" AND "\fR, \fB" OR "\fR an \fB" LIMIT "\fR.
.LP
The \fBLIMIT\fR keyword can be used to limit the number of items upon which running the expression. \fBLIMIT\fR can only be placed at the end of the expression followed by the number of elements you want.
.SS Examples:
.nf
.B boobank ls \-\-condition 'label=Livret A'
.fi
Display only the "Livret A" account.
.PP
.nf
.B boobank ls \-\-condition 'balance>10000'
.fi
Display accounts with a lot of money.
.PP
.nf
.B boobank history account@backend \-\-condition 'label|rewe'
.fi
Get transactions containing "rewe".
.PP
.nf
.B boobank history account@backend \-\-condition 'date>2013\-12\-01 AND date<2013\-12\-09'
.fi
Get transactions betweens the 2th December and 8th December 2013.
.PP
.nf
.B boobank history account@backend \-\-condition 'date>2013\-12\-01 LIMIT 10'
.fi
Get transactions after the 2th December in the last 10 transactions
.SH COPYRIGHT
Copyright(C) 2010-2019 Romain Bignon
.LP
For full copyright information see the COPYING file in the weboob package.
.LP
.RE
.SH FILES
"~/.config/weboob/backends"
.SH SEE ALSO
Home page: http://weboob.org/applications/qboobmsg
.\" -*- coding: utf-8 -*-
.\" This file was generated automatically by tools/make_man.sh.
.TH QBOOBTRACKER 1 "27 February 2019" "qboobtracker 1\&.5"
.SH NAME
qboobtracker \- search for bugs/tasks
.SH SYNOPSIS
.B qboobtracker
[\-h] [\-dqv] [\-b \fIbackends\fR] ...
.br
.B qboobtracker
[\-\-help] [\-\-version]
.SH DESCRIPTION
.LP
Qt application to search for bugs and tasks.
.SS Supported websites:
* asana (Asana)
.br
* github (GitHub issues tracking)
.br
* redmine (The Redmine project management web application)
.SH OPTIONS
.TP
\fB\-\-version\fR
show program's version number and exit
.TP
\fB\-h\fR, \fB\-\-help\fR
show this help message and exit
.TP
\fB\-b BACKENDS\fR, \fB\-\-backends=BACKENDS\fR
what backend(s) to enable (comma separated)
.TP
\fB\-e EXCLUDE_BACKENDS\fR, \fB\-\-exclude\-backends=EXCLUDE_BACKENDS\fR
what backend(s) to exclude (comma separated)
.TP
\fB\-I\fR, \fB\-\-insecure\fR
do not validate SSL
.TP
\fB\-\-nss\fR
Use NSS instead of OpenSSL
.SH LOGGING OPTIONS
.TP
\fB\-d\fR, \fB\-\-debug\fR
display debug messages. Set up it twice to more verbosity
.TP
\fB\-q\fR, \fB\-\-quiet\fR
display only error messages
.TP
\fB\-v\fR, \fB\-\-verbose\fR
display info messages
.TP
\fB\-\-logging\-file=LOGGING_FILE\fR
file to save logs
.TP
\fB\-a\fR, \fB\-\-save\-responses\fR
save every response
.TP
\fB\-\-export\-session\fR
log browser session cookies after login
.SH CONDITION
The \-c and \-\-condition is a flexible way to filter and get only interesting results. It supports conditions on numerical values, dates, durations and strings. Dates are given in YYYY\-MM\-DD or YYYY\-MM\-DD HH:MM format. Durations look like XhYmZs where X, Y and Z are integers. Any of them may be omitted. For instance, YmZs, XhZs or Ym are accepted.
The syntax of one expression is "\fBfield operator value\fR". The field to test is always the left member of the expression.
.LP
The field is a member of the objects returned by the command. For example, a bank account has "balance", "coming" or "label" fields.
.SS The following operators are supported:
.TP
=
Test if object.field is equal to the value.
.TP
!=
Test if object.field is not equal to the value.
.TP
>
Test if object.field is greater than the value. If object.field is date, return true if value is before that object.field.
.TP
<
Test if object.field is less than the value. If object.field is date, return true if value is after that object.field.
.TP
|
This operator is available only for string fields. It works like the Unix standard \fBgrep\fR command, and returns True if the pattern specified in the value is in object.field.
.SS Expression combination
.LP
You can make a expression combinations with the keywords \fB" AND "\fR, \fB" OR "\fR an \fB" LIMIT "\fR.
.LP
The \fBLIMIT\fR keyword can be used to limit the number of items upon which running the expression. \fBLIMIT\fR can only be placed at the end of the expression followed by the number of elements you want.
.SS Examples:
.nf
.B boobank ls \-\-condition 'label=Livret A'
.fi
Display only the "Livret A" account.
.PP
.nf
.B boobank ls \-\-condition 'balance>10000'
.fi
Display accounts with a lot of money.
.PP
.nf
.B boobank history account@backend \-\-condition 'label|rewe'
.fi
Get transactions containing "rewe".
.PP
.nf
.B boobank history account@backend \-\-condition 'date>2013\-12\-01 AND date<2013\-12\-09'
.fi
Get transactions betweens the 2th December and 8th December 2013.
.PP
.nf
.B boobank history account@backend \-\-condition 'date>2013\-12\-01 LIMIT 10'
.fi
Get transactions after the 2th December in the last 10 transactions
.SH COPYRIGHT
Copyright(C) 2018-2019 Vincent A
.LP
For full copyright information see the COPYING file in the weboob package.
.LP
.RE
.SH FILES
"~/.config/weboob/backends"
"~/.config/weboob/qboobtracker"
.SH SEE ALSO
Home page: http://weboob.org/applications/qboobtracker
.\" -*- coding: utf-8 -*-
.\" This file was generated automatically by tools/make_man.sh.
.TH QCINEOOB 1 "27 February 2019" "qcineoob 1\&.5"
.SH NAME
qcineoob \- search movies, people, torrent and subtitles
.SH SYNOPSIS
.B qcineoob
[\-h] [\-dqv] [\-b \fIbackends\fR] ...
.br
.B qcineoob
[\-\-help] [\-\-version]
.SH DESCRIPTION
.LP
Qt application allowing to search movies, people, torrent and subtitles.
.SS Supported websites:
* allocine (AlloCiné French cinema database service)
.br
* btmon (BTMon BitTorrent database)
.br
* cpasbien (Cpasbien Torrents BitTorrent tracker)
.br
* imdb (Internet Movie Database service)
.br
* kickass (Kickass Torrents BitTorrent tracker)
.br
* limetorrents (Limetorrents BitTorrent tracker)
.br
* opensubtitles (Opensubtitles subtitle website)
.br
* piratebay (The Pirate Bay BitTorrent tracker)
.br
* podnapisi (Podnapisi movies and tv series subtitle website)
.br
* t411 (T411 BitTorrent tracker)
.br
* torrentz (Torrentz Search Engine.)
.br
* tvsubtitles (Tvsubtitles subtitle website)
.br
* yggtorrent (YGG BitTorrent tracker)
.SH OPTIONS
.TP
\fB\-\-version\fR
show program's version number and exit
.TP
\fB\-h\fR, \fB\-\-help\fR
show this help message and exit
.TP
\fB\-b BACKENDS\fR, \fB\-\-backends=BACKENDS\fR
what backend(s) to enable (comma separated)
.TP
\fB\-e EXCLUDE_BACKENDS\fR, \fB\-\-exclude\-backends=EXCLUDE_BACKENDS\fR
what backend(s) to exclude (comma separated)
.TP
\fB\-I\fR, \fB\-\-insecure\fR
do not validate SSL
.TP
\fB\-\-nss\fR
Use NSS instead of OpenSSL
.SH LOGGING OPTIONS
.TP
\fB\-d\fR, \fB\-\-debug\fR
display debug messages. Set up it twice to more verbosity
.TP
\fB\-q\fR, \fB\-\-quiet\fR
display only error messages
.TP
\fB\-v\fR, \fB\-\-verbose\fR
display info messages
.TP
\fB\-\-logging\-file=LOGGING_FILE\fR
file to save logs
.TP
\fB\-a\fR, \fB\-\-save\-responses\fR
save every response
.TP
\fB\-\-export\-session\fR
log browser session cookies after login
.SH CONDITION
The \-c and \-\-condition is a flexible way to filter and get only interesting results. It supports conditions on numerical values, dates, durations and strings. Dates are given in YYYY\-MM\-DD or YYYY\-MM\-DD HH:MM format. Durations look like XhYmZs where X, Y and Z are integers. Any of them may be omitted. For instance, YmZs, XhZs or Ym are accepted.
The syntax of one expression is "\fBfield operator value\fR". The field to test is always the left member of the expression.
.LP
The field is a member of the objects returned by the command. For example, a bank account has "balance", "coming" or "label" fields.
.SS The following operators are supported:
.TP
=
Test if object.field is equal to the value.
.TP
!=
Test if object.field is not equal to the value.
.TP
>
Test if object.field is greater than the value. If object.field is date, return true if value is before that object.field.
.TP
<
Test if object.field is less than the value. If object.field is date, return true if value is after that object.field.
.TP
|
This operator is available only for string fields. It works like the Unix standard \fBgrep\fR command, and returns True if the pattern specified in the value is in object.field.
.SS Expression combination
.LP
You can make a expression combinations with the keywords \fB" AND "\fR, \fB" OR "\fR an \fB" LIMIT "\fR.
.LP
The \fBLIMIT\fR keyword can be used to limit the number of items upon which running the expression. \fBLIMIT\fR can only be placed at the end of the expression followed by the number of elements you want.
.SS Examples:
.nf
.B boobank ls \-\-condition 'label=Livret A'
.fi
Display only the "Livret A" account.
.PP
.nf
.B boobank ls \-\-condition 'balance>10000'
.fi
Display accounts with a lot of money.
.PP
.nf
.B boobank history account@backend \-\-condition 'label|rewe'
.fi
Get transactions containing "rewe".
.PP
.nf
.B boobank history account@backend \-\-condition 'date>2013\-12\-01 AND date<2013\-12\-09'
.fi
Get transactions betweens the 2th December and 8th December 2013.
.PP
.nf
.B boobank history account@backend \-\-condition 'date>2013\-12\-01 LIMIT 10'
.fi
Get transactions after the 2th December in the last 10 transactions
.SH COPYRIGHT
Copyright(C) 2013-2019 Julien Veyssier
.LP
For full copyright information see the COPYING file in the weboob package.
.LP
.RE
.SH FILES
"~/.config/weboob/backends"
"~/.config/weboob/qcineoob"
.SH SEE ALSO
Home page: http://weboob.org/applications/qcineoob