update sphinx doc
This commit is contained in:
parent
bd083e7d43
commit
8f8f2e29e8
19 changed files with 177 additions and 2 deletions
BIN
docs/source/_static/architecture.png
Normal file
BIN
docs/source/_static/architecture.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 92 KiB |
6
docs/source/api/capabilities/account.rst
Normal file
6
docs/source/api/capabilities/account.rst
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
:mod:`weboob.capabilities.account`
|
||||||
|
==================================
|
||||||
|
|
||||||
|
.. automodule:: weboob.capabilities.account
|
||||||
|
:members:
|
||||||
|
:undoc-members:
|
||||||
6
docs/source/api/capabilities/bank.rst
Normal file
6
docs/source/api/capabilities/bank.rst
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
:mod:`weboob.capabilities.bank`
|
||||||
|
===============================
|
||||||
|
|
||||||
|
.. automodule:: weboob.capabilities.bank
|
||||||
|
:members:
|
||||||
|
:undoc-members:
|
||||||
6
docs/source/api/capabilities/base.rst
Normal file
6
docs/source/api/capabilities/base.rst
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
:mod:`weboob.capabilities.base`
|
||||||
|
===============================
|
||||||
|
|
||||||
|
.. automodule:: weboob.capabilities.base
|
||||||
|
:members:
|
||||||
|
:undoc-members:
|
||||||
6
docs/source/api/capabilities/chat.rst
Normal file
6
docs/source/api/capabilities/chat.rst
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
:mod:`weboob.capabilities.chat`
|
||||||
|
===============================
|
||||||
|
|
||||||
|
.. automodule:: weboob.capabilities.chat
|
||||||
|
:members:
|
||||||
|
:undoc-members:
|
||||||
6
docs/source/api/capabilities/contact.rst
Normal file
6
docs/source/api/capabilities/contact.rst
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
:mod:`weboob.capabilities.contact`
|
||||||
|
==================================
|
||||||
|
|
||||||
|
.. automodule:: weboob.capabilities.contact
|
||||||
|
:members:
|
||||||
|
:undoc-members:
|
||||||
6
docs/source/api/capabilities/content.rst
Normal file
6
docs/source/api/capabilities/content.rst
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
:mod:`weboob.capabilities.content`
|
||||||
|
==================================
|
||||||
|
|
||||||
|
.. automodule:: weboob.capabilities.content
|
||||||
|
:members:
|
||||||
|
:undoc-members:
|
||||||
6
docs/source/api/capabilities/dating.rst
Normal file
6
docs/source/api/capabilities/dating.rst
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
:mod:`weboob.capabilities.dating`
|
||||||
|
=================================
|
||||||
|
|
||||||
|
.. automodule:: weboob.capabilities.dating
|
||||||
|
:members:
|
||||||
|
:undoc-members:
|
||||||
6
docs/source/api/capabilities/geolocip.rst
Normal file
6
docs/source/api/capabilities/geolocip.rst
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
:mod:`weboob.capabilities.geolocip`
|
||||||
|
===================================
|
||||||
|
|
||||||
|
.. automodule:: weboob.capabilities.geolocip
|
||||||
|
:members:
|
||||||
|
:undoc-members:
|
||||||
22
docs/source/api/capabilities/index.rst
Normal file
22
docs/source/api/capabilities/index.rst
Normal file
|
|
@ -0,0 +1,22 @@
|
||||||
|
:mod:`weboob.capabilities`
|
||||||
|
==========================
|
||||||
|
|
||||||
|
Contents:
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:maxdepth: 2
|
||||||
|
|
||||||
|
account
|
||||||
|
bank
|
||||||
|
base
|
||||||
|
chat
|
||||||
|
contact
|
||||||
|
content
|
||||||
|
dating
|
||||||
|
geolocip
|
||||||
|
messages
|
||||||
|
radio
|
||||||
|
torrent
|
||||||
|
travel
|
||||||
|
video
|
||||||
|
weather
|
||||||
6
docs/source/api/capabilities/messages.rst
Normal file
6
docs/source/api/capabilities/messages.rst
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
:mod:`weboob.capabilities.messages`
|
||||||
|
===================================
|
||||||
|
|
||||||
|
.. automodule:: weboob.capabilities.messages
|
||||||
|
:members:
|
||||||
|
:undoc-members:
|
||||||
6
docs/source/api/capabilities/radio.rst
Normal file
6
docs/source/api/capabilities/radio.rst
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
:mod:`weboob.capabilities.radio`
|
||||||
|
================================
|
||||||
|
|
||||||
|
.. automodule:: weboob.capabilities.radio
|
||||||
|
:members:
|
||||||
|
:undoc-members:
|
||||||
6
docs/source/api/capabilities/torrent.rst
Normal file
6
docs/source/api/capabilities/torrent.rst
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
:mod:`weboob.capabilities.torrent`
|
||||||
|
==================================
|
||||||
|
|
||||||
|
.. automodule:: weboob.capabilities.torrent
|
||||||
|
:members:
|
||||||
|
:undoc-members:
|
||||||
6
docs/source/api/capabilities/travel.rst
Normal file
6
docs/source/api/capabilities/travel.rst
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
:mod:`weboob.capabilities.travel`
|
||||||
|
=================================
|
||||||
|
|
||||||
|
.. automodule:: weboob.capabilities.travel
|
||||||
|
:members:
|
||||||
|
:undoc-members:
|
||||||
6
docs/source/api/capabilities/video.rst
Normal file
6
docs/source/api/capabilities/video.rst
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
:mod:`weboob.capabilities.video`
|
||||||
|
================================
|
||||||
|
|
||||||
|
.. automodule:: weboob.capabilities.video
|
||||||
|
:members:
|
||||||
|
:undoc-members:
|
||||||
6
docs/source/api/capabilities/weather.rst
Normal file
6
docs/source/api/capabilities/weather.rst
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
:mod:`weboob.capabilities.weather`
|
||||||
|
==================================
|
||||||
|
|
||||||
|
.. automodule:: weboob.capabilities.weather
|
||||||
|
:members:
|
||||||
|
:undoc-members:
|
||||||
|
|
@ -6,5 +6,6 @@ Contents:
|
||||||
.. toctree::
|
.. toctree::
|
||||||
:maxdepth: 2
|
:maxdepth: 2
|
||||||
|
|
||||||
|
capabilities/index
|
||||||
core/index
|
core/index
|
||||||
tools/index
|
tools/index
|
||||||
|
|
|
||||||
|
|
@ -1,2 +1,56 @@
|
||||||
Backend development
|
Backend development
|
||||||
===================
|
===================
|
||||||
|
|
||||||
|
Each backend implements one or many :doc:`capabilities </api/capabilities/index>` to tell what kind of features the
|
||||||
|
website provides. A capability is a class derived from :class:`weboob.capabilities.base.ICap` and with some virtual
|
||||||
|
methods (which raise ``NotImplementedError``).
|
||||||
|
|
||||||
|
A capability needs to be as generic as possible to allow a maximum number of backends to implements it.
|
||||||
|
Anyway, if you really need to handle website specificities, you can create more specific sub-capabilities.
|
||||||
|
|
||||||
|
For example, there is the :class:`weboob.capabilities.messages.ICapMessages` capability, with the associated
|
||||||
|
:class:`weboob.capabilities.messages.ICapMessagesPost` capability to allow answers to messages.
|
||||||
|
|
||||||
|
Pick an existing capability
|
||||||
|
---------------------------
|
||||||
|
|
||||||
|
When you want to create a new backend, you may have a look on existing capabilities to decide which one can be
|
||||||
|
implemented. It is quite important, because each already existing capability is supported by at least one application.
|
||||||
|
So if your new backend implements an existing capability, it will be usable from the existing applications right now.
|
||||||
|
|
||||||
|
Create a new capability
|
||||||
|
-----------------------
|
||||||
|
|
||||||
|
If the website you want to manage implements some extra-features which are not implemented by any capability,
|
||||||
|
you can introduce a new capability.
|
||||||
|
|
||||||
|
There are some important rules:
|
||||||
|
|
||||||
|
* A method can raise only its own exceptions.
|
||||||
|
|
||||||
|
When you want to return an error, you *must* raise only your own exceptions defined in the capability module.
|
||||||
|
Never let Python raise his exceptions, for example ``KeyError`` if a parameter given to method isn't found in a local
|
||||||
|
list.
|
||||||
|
|
||||||
|
* Prefer returning objects
|
||||||
|
|
||||||
|
Python is an object-oriented language, so when your capability supports entities (for example
|
||||||
|
:class:`weboob.capabilities.video.BaseVideo` with the :class:`weboob.capabilities.video.ICapVideo` capability),
|
||||||
|
you have to create a class derivated from :class:`weboob.capabilities.base.CapBaseObject`, and create an unique method
|
||||||
|
to get it (for example :func:`get_video() <weboob.capabilities.video.ICapVideo.get_video>`), instead of several methods like
|
||||||
|
``get_video_url()``, ``get_video_preview()``, etc.
|
||||||
|
|
||||||
|
An object has an unique ID.
|
||||||
|
|
||||||
|
* Filled objects
|
||||||
|
|
||||||
|
When an object is fetched, all of its fields are not necessarily loaded.
|
||||||
|
|
||||||
|
For example, on a video search, if the backend gets information from the search page, the direct URL of the video
|
||||||
|
isn't available yet.
|
||||||
|
|
||||||
|
A field which isn't loaded can be set to :class:`weboob.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
|
||||||
|
the new values.
|
||||||
|
|
|
||||||
|
|
@ -13,11 +13,19 @@ Weboob is written in Python and is distributed under the GPLv3 license.
|
||||||
Why using Weboob?
|
Why using Weboob?
|
||||||
-----------------
|
-----------------
|
||||||
|
|
||||||
* you get essential information faster
|
* you get essential information from websites faster
|
||||||
* you can write scripts using weboob to automate tasks
|
* you can write scripts using weboob to automate tasks
|
||||||
* it extends websites features
|
* you can extend websites features
|
||||||
* it helps blind people using crappy websites
|
* it helps blind people using crappy websites
|
||||||
|
|
||||||
|
Architecture
|
||||||
|
------------
|
||||||
|
|
||||||
|
.. warning::
|
||||||
|
This diagram has to be redrawn.
|
||||||
|
|
||||||
|
.. image:: _static/architecture.png
|
||||||
|
|
||||||
Capabilities
|
Capabilities
|
||||||
------------
|
------------
|
||||||
|
|
||||||
|
|
@ -42,3 +50,9 @@ Applications
|
||||||
------------
|
------------
|
||||||
|
|
||||||
Applications are toolkit-agnostic. They can use Gtk, Qt or just be text-only, more adapted to reuse data through pipes.
|
Applications are toolkit-agnostic. They can use Gtk, Qt or just be text-only, more adapted to reuse data through pipes.
|
||||||
|
|
||||||
|
Reporting a bug
|
||||||
|
---------------
|
||||||
|
|
||||||
|
When you report a bug on the tracker, it's important to correctly set the category as specific as possible.
|
||||||
|
Also, don't forget to give information about your version of Weboob, OS, implicated libraries.
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue