Feedcore: Check feedparser version (bug 1648)
This commit is contained in:
parent
8b11df4fe5
commit
4481584db8
2
README
2
README
|
@ -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
|
||||
|
||||
|
|
14
bin/gpo
14
bin/gpo
|
@ -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)
|
||||
|
|
|
@ -24,6 +24,9 @@
|
|||
|
||||
import feedparser
|
||||
|
||||
import logging
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
try:
|
||||
# Python 2
|
||||
from rfc822 import mktime_tz
|
||||
|
@ -31,6 +34,18 @@ 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'
|
||||
|
@ -75,7 +90,10 @@ def patch_feedparser():
|
|||
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
|
||||
|
|
Loading…
Reference in New Issue