All pastes #125854 Raw Edit

Untitled

public text v1 · immutable
·published 2006-08-10 23:48 UTC
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.