2009-08-14 01:48:21 +00:00
|
|
|
from django.core.management.base import BaseCommand
|
|
|
|
from django.core.handlers.wsgi import WSGIHandler
|
|
|
|
from apps.rss_feeds.models import Feed, Story
|
|
|
|
from django.core.cache import cache
|
2010-01-12 01:19:37 +00:00
|
|
|
from django.db.models import Q
|
2010-02-11 01:28:47 -05:00
|
|
|
from apps.reader.models import UserSubscription, UserStory
|
2009-08-14 01:48:21 +00:00
|
|
|
from optparse import OptionParser, make_option
|
2009-08-30 00:43:13 +00:00
|
|
|
from utils.management_functions import daemonize
|
2009-08-14 01:48:21 +00:00
|
|
|
import os
|
|
|
|
import errno
|
|
|
|
|
|
|
|
class Command(BaseCommand):
|
|
|
|
option_list = BaseCommand.option_list + (
|
|
|
|
make_option("-f", "--feed", dest="feed", default=None),
|
2010-04-29 11:18:49 -04:00
|
|
|
make_option("-F", "--force", dest="force", action="store_true"),
|
2010-01-12 01:19:37 +00:00
|
|
|
make_option("-t", "--title", dest="title", default=None),
|
2009-08-14 01:48:21 +00:00
|
|
|
make_option("-d", "--daemon", dest="daemonize", action="store_true"),
|
|
|
|
)
|
|
|
|
|
|
|
|
def handle(self, *args, **options):
|
|
|
|
if options['daemonize']:
|
|
|
|
daemonize()
|
2010-01-12 01:19:37 +00:00
|
|
|
|
|
|
|
if options['title']:
|
|
|
|
feed = Feed.objects.get(feed_title__contains=options['title'])
|
|
|
|
else:
|
|
|
|
feed = Feed.objects.get(pk=options['feed'])
|
2010-04-29 11:18:49 -04:00
|
|
|
self._refresh_feeds([feed], force=options['force'])
|
2009-08-14 01:48:21 +00:00
|
|
|
|
2010-04-29 11:18:49 -04:00
|
|
|
def _refresh_feeds(self, feeds, force=False):
|
2009-08-14 01:48:21 +00:00
|
|
|
for feed in feeds:
|
2010-04-29 11:18:49 -04:00
|
|
|
feed.update(force=force, single_threaded=True)
|
2009-08-14 01:48:21 +00:00
|
|
|
usersubs = UserSubscription.objects.filter(
|
|
|
|
feed=feed.id
|
2010-04-05 03:20:44 -04:00
|
|
|
)
|