NewsBlur-viq/apps/rss_feeds/management/commands/task_feeds.py

55 lines
1.8 KiB
Python
Raw Normal View History

from django.core.management.base import BaseCommand
from django.conf import settings
from optparse import make_option
import datetime
class Command(BaseCommand):
option_list = BaseCommand.option_list + (
make_option("-f", "--feed", default=None),
2011-04-11 21:57:45 -04:00
make_option("-a", "--all", default=False, action='store_true'),
make_option('-V', '--verbose', action='store_true',
dest='verbose', default=False, help='Verbose output.'),
)
def handle(self, *args, **options):
from apps.rss_feeds.models import Feed
settings.LOG_TO_STREAM = True
now = datetime.datetime.utcnow()
# Active feeds
feeds = Feed.objects.filter(
next_scheduled_update__lte=now,
active=True
).exclude(
active_subscribers=0
).order_by('?')
2011-04-11 21:57:45 -04:00
if options['all']:
feeds = Feed.objects.all()
Feed.task_feeds(feeds)
# Mistakenly inactive feeds
day = now - datetime.timedelta(days=1)
feeds = Feed.objects.filter(
last_update__lte=day,
queued_date__lte=day,
min_to_decay__lte=60*24,
active_subscribers__gte=1
).order_by('?')[:50]
if feeds: Feed.task_feeds(feeds)
week = now - datetime.timedelta(days=7)
feeds = Feed.objects.filter(
last_update__lte=week,
queued_date__lte=day,
active_subscribers__gte=1
).order_by('?')[:50]
if feeds: Feed.task_feeds(feeds)
2012-02-24 17:07:42 -08:00
# feeds = Feed.objects.filter(
# last_update__lte=day,
# active_subscribers__gte=1,
# active=False,
# known_good=True
# ).order_by('?')
# if feeds: Feed.task_feeds(feeds)