Merge tag '0.8.0' into betamax
fixed encoding issues, folder support in OPML, bash completion
View Articlerefactor feeds to remove global
we now use a class static session that can be used from plugins this slightly simplifies the implementation of plugins as we do not need to load the module at a specific point to get the right...
View Articleadd requests-file dependency
get rid of our custom wrapper code around requests to handle file:// resources: that is handled by a third-party library and removes about 40 lines of code we didn't need this makes session...
View Articleuse getter/setters for class session
this makes the code cleaner and more idiomatic this does require plugins to use the private member to access the session, especially for the test suite, but there are ways of avoiding that for...
View Articlereorder feed class hierarchy
the feed fetch functionality does not need to be in the "storage" hierarchy...
View Articlemove opml import in the FeedStorage abstract class
this makes more sense than having it as a standalone function. also, it is not storage specific, so let's make a API-facing class that will expose more generic functions.
View Articlesplit --config and --database settings, using xdg module
the xdg module saves us some code and also extends configuration to support global config files like /etc or /var/cache (in theory - in practice, the freedesktop standards only use ~/.cache). using...
View Articleinitialize FeedFetcher session singleton properly
without this, the wayback plugin would fail because it FeedFetcher._session is None. doing this in the constructor makes the accessor faster as well, as we don't need to do another check. this should...
View ArticleAPI refactoring: merge classes in a controller
The FeedStorage and FeedFetcher class were fairly similar: they were wrappers around the storage subsystem, which is basically a "model", so they are a "controller" in the classic sense. So merge them...
View ArticleAPI refactoring: create a Feed class
A "Feed" is the basic representation of a RSS/Atom feed. It derives from the feedparser dict but we use our class to regroup functionality that was loose around the module, like normalize() and...
View Article