There is now a "latest" collection (or "latest_nsfw").
The feature didn't look much used, since it didn't work on many
backends.
Using collections will make it easy to support other things
like most viewed, featured, etc.
As a bonus, I added tests for every backend with the feature.
It is now in "data-src" instead of "src", because they use JavaScript
lazy loading.
Also ask for the bigger thumbnail, and remove useless anti-caching.
FIP now uses the same website as most Radio France radios.
As a consequence, it is able to support CapVideo.
There are a few differences between FIP and the other radios, but this
still allowed for less code, and the code should be more robust for
every radio.
I used autopep8 on some files and did carefully check the changes.
I ignored E501,E302,E231,E225,E222,E221,E241,E203 in my search, and at
least E501 on any autopep8 run.
Other style fixes not related to PEP8:
* Only use new-style classes. I don't think the usage of old-style
classes was voluntary. Old-style classes are removed in Python 3.
* Convert an if/else to a one-liner in mediawiki, change docstring style
change to a comment something that wasn't really appropriate for a
docstring.
* Unneeded first if condition in meteofrance
Don't force objects to have an id, especially since that id was
incorrect. "plap/plop" would have the same id as "plop", i.e. "plop".
We don't rely on the id for handling Collections anymore.
Change to use more unique property names.
Change the display, instead of using '*', we use '~', and there is no
"Collection" header anymore.
Updated formatters could use that way of showing the object is also a
collection too.
refs #774
Handle and use exceptions.
An example is provided with the redmine backend (not very useful
though). If you cd into the project title instead of the id, it is
accepted and the path is corrected.
* Create a get_collection method similar to get_* methods for objects.
* Fix title initialization of a collection
* Remove the hack were both id and title were allowed when CDing.
That hack only worked with the canalplus module, and failed with
others like redmine (but they still showed in suggestions).
Moreover, the canalplus module now has friendlier IDs
so this is not really needed anymore.
* Allow backends to tell if a path is valid or not.
For instance, it now allows to cd in a Redmine project with no issues
in it. It also won't display "404" for invalid project IDs.
By default, we still use the unreliable method of checking there is at
least one result in iter_resources().
* Fix cd completion to work with unicode strings (all strings after an
unicode string were ignored!)
* Do not suggest '..' when completing cd in the root
refs #774