rendered paste body#code
"""
Update feeds for Django community page. Requires Mark Pilgrim's excellent
Universal Feed Parser (http://feedparser.org)
"""
import os
import time
import optparse
import datetime
import feedparser
def update_feeds():
from aggregator.models import Feed, FeedItem
for feed in Feed.objects.filter(is_defunct=False):
parsed_feed = feedparser.parse(feed.feed_url)
for entry in parsed_feed.entries:
title = entry.title.encode(parsed_feed.encoding, "xmlcharrefreplace")
guid = entry.get("id", entry.link).encode(parsed_feed.encoding, "xmlcharrefreplace")
link = entry.link.encode(parsed_feed.encoding, "xmlcharrefreplace")
if hasattr(entry, "summary"):
content = entry.summary
elif hasattr(entry, "content"):
content = entry.content[0].value
elif hasattr(entry, "description"):
content = entry.description
else:
content = u""
content = content.encode(parsed_feed.encoding, "xmlcharrefreplace")
if entry.has_key('modified_parsed'):
date_modified = datetime.datetime.fromtimestamp(time.mktime(entry.modified_parsed))
elif parsed_feed.feed.has_key('modified_parsed'):
date_modified = datetime.datetime.fromtimestamp(time.mktime(parsed_feed.feed.modified_parsed))
elif parsed_feed.has_key('modified'):
date_modified = datetime.datetime.fromtimestamp(time.mktime(parsed_feed.modified))
else:
date_modified = datetime.datetime.now()
try:
feed.feeditem_set.get(guid=guid)
except FeedItem.DoesNotExist:
feed.feeditem_set.create(title=title, link=link, summary=content, guid=guid, date_modified=date_modified)
if __name__ == '__main__':
parser = optparse.OptionParser()
parser.add_option('--settings')
options, args = parser.parse_args()
if options.settings:
os.environ["DJANGO_SETTINGS_MODULE"] = options.settings
update_feeds()
#error
$ python update_feeds.py
Traceback (most recent call last):
File "update_feeds.py", line 51, in ?
update_feeds()
File "update_feeds.py", line 13, in update_feeds
from aggregator.models import Feed, FeedItem
File "/home/kakei/django_website/../django_website/aggregator/models.py", line 1, in ?
from django.db import models
File "/usr/lib/python2.4/site-packages/Django-0.95-py2.4.egg/django/db/__init__.py", line 7, in ?
if not settings.DATABASE_ENGINE:
File "/usr/lib/python2.4/site-packages/Django-0.95-py2.4.egg/django/conf/__init__.py", line 28, in __getattr__
self._import_settings()
File "/usr/lib/python2.4/site-packages/Django-0.95-py2.4.egg/django/conf/__init__.py", line 53, in _import_settings
raise EnvironmentError, "Environment variable %s is undefined." % ENVIRONMENT_VARIABLE
EnvironmentError: Environment variable DJANGO_SETTINGS_MODULE is undefined.