Skip to content

Commit

Permalink
Feedcore: Check feedparser version (bug 1648)
Browse files Browse the repository at this point in the history
  • Loading branch information
thp committed Aug 15, 2012
1 parent 8b11df4 commit 4481584
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 9 deletions.
2 changes: 1 addition & 1 deletion README
Expand Up @@ -32,7 +32,7 @@

- Python 2.6 or newer http://python.org/
- "sqlite3" Python module (usually included with Python)
- Feedparser 5.0.1 or newer http://code.google.com/p/feedparser/
- Feedparser 5.1.2 or newer http://code.google.com/p/feedparser/
- mygpoclient 1.4 or newer http://thp.io/2010/mygpoclient/
- Python D-Bus bindings

Expand Down
14 changes: 7 additions & 7 deletions bin/gpo
Expand Up @@ -119,19 +119,19 @@ gpodder.ui.cli = True
# Platform detection (i.e. Maemo 5, etc..)
gpodder.detect_platform()

from gpodder import api
from gpodder import my
from gpodder import opml
from gpodder import util
from gpodder import log
from gpodder.config import config_value_to_string

have_ansi = sys.stdout.isatty() and not gpodder.win32
interactive_console = sys.stdin.isatty() and sys.stdout.isatty()
is_single_command = False

from gpodder import log
log.setup(verbose)

from gpodder import api
from gpodder import my
from gpodder import opml
from gpodder import util
from gpodder.config import config_value_to_string

def incolor(color_id, s):
if have_ansi and cli.config.ui.cli.colors:
return '\033[9%dm%s\033[0m' % (color_id, s)
Expand Down
20 changes: 19 additions & 1 deletion src/gpodder/feedcore.py
Expand Up @@ -24,13 +24,28 @@

import feedparser

import logging
logger = logging.getLogger(__name__)

try:
# Python 2
from rfc822 import mktime_tz
except ImportError:
# Python 3
from email.utils import mktime_tz


# Version check to avoid bug 1648
feedparser_version = tuple(int(x) if x.isdigit() else x
for x in feedparser.__version__.split('.'))
feedparser_miniumum_version = (5, 1, 2)
if feedparser_version < feedparser_miniumum_version:
installed_version = feedparser.__version__
required_version = '.'.join(str(x) for x in feedparser_miniumum_version)
logger.warn('Your feedparser is too old. Installed: %s, recommended: %s',
installed_version, required_version)


def patch_feedparser():
"""Monkey-patch the Universal Feed Parser"""
# Detect the 'plain' content type as 'text/plain'
Expand Down Expand Up @@ -75,7 +90,10 @@ def _end_updated(self):
value = self.pop('updated')
parsed_value = feedparser._parse_date(value)
overwrite = ('youtube.com' not in self.baseuri)
self._save('updated_parsed', parsed_value, overwrite=overwrite)
try:
self._save('updated_parsed', parsed_value, overwrite=overwrite)
except TypeError, te:
logger.warn('Your feedparser version is too old: %s', te)

try:
feedparser._FeedParserMixin._end_updated = _end_updated
Expand Down

0 comments on commit 4481584

Please sign in to comment.