Last commit I added `yield from`, which is a Python 3.4 feature. I had
intended to retain Python 2.7 syntax, and I guess if that's really
wanted, we can change that `yield from` to a `yield`, but right now I'm
thinking: onward and upwards.
Tornado's `fetch` method no longer accepts a callback function, it's
purely coroutine based.
Not quite ready to jump to the "new world order" as this code was
written with Python 2.7 support in mind, so we'll make a coroutine
wrapper that calls Tornado's HTTP client, and manages the callback
logic.
Sometimes feeds provide the entire post as HTML (e.g. Gentoo Planet),
some only give a summary in HTML (ABC News) and some only give a
plain-text summary (ABC News previously).
This tries to support a few different formats gracefully, before giving
up and just displaying "Summary not available".
Some sites, notably ABC News, provide just plain-text content or a
practically identical HTML summary, resulting in neither appearing on
the feed. This checks the output of the HTML content extraction and
falls back to the summary if that comes up empty.
We can probably factor this a bit better so we're not repeating
ourselves, but in essence, if we have an older version we can put up
instead, we'll use that.