We've been using cron to run an update script that looks in our django
commmunity pages(aggy), pulls out Feeds and creates feeditems.
Here's what an example of the cron file looks like
17 13 * * * /var/www/django/django_projects/scripts/computing_feeds.sh
Here's what that shell script looks like
#!/bin/bash
/usr/bin/python /var/www/django/django_projects/scripts/
update_feeds.py --settings=fact.settings_computing
I've got a fact.pth file in my site-packages folder for python(fact is
the name of the django application, with multiple settings files),
looks like this
/var/www/django/django_projects
The fact folder sits in that folder
I've pasted in a copy of update_feeds.py that we've been using for
over 5 years now. At some point in the last 2 months it's stopped
working.
I can run the commands from the command line, which leads me to
believe that DJANGO_SETTINGS_MODULE is not being passed to the
update_feeds.py script.
The problem I've got with this is that it has been working for a very
long time.
If anyone can shed any light on what is going on here, or have any
ideas on how to solve it, I'd be more than grateful for any advice or
tips.
vi /var/www/django/django_projects/scripts/update_feeds.py
!/usr/bin/python
"""
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 fact.aggy.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()
--
You received this message because you are subscribed to the Google Groups "Django users" group.
To post to this group, send email to django-users@googlegroups.com.
To unsubscribe from this group, send email to django-users+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/django-users?hl=en.
No comments:
Post a Comment