From 3573ac2e7803bdca1667a508506284dd523e1c7f Mon Sep 17 00:00:00 2001 From: Samuel Clay Date: Fri, 30 Apr 2010 18:44:24 -0400 Subject: [PATCH] Adding a mark_read command to have the demo account always at 1 day unread. --- .../management/commands/mark_read.py | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 apps/rss_feeds/management/commands/mark_read.py diff --git a/apps/rss_feeds/management/commands/mark_read.py b/apps/rss_feeds/management/commands/mark_read.py new file mode 100644 index 000000000..20706c5be --- /dev/null +++ b/apps/rss_feeds/management/commands/mark_read.py @@ -0,0 +1,35 @@ +from django.core.management.base import BaseCommand +from django.core.handlers.wsgi import WSGIHandler +from apps.rss_feeds.models import Feed, Story +from django.contrib.auth.models import User +from django.core.cache import cache +from apps.reader.models import UserSubscription, UserStory +from optparse import OptionParser, make_option +import os +import logging +import errno +import re +import datetime + +class Command(BaseCommand): + option_list = BaseCommand.option_list + ( + make_option("-d", "--days", dest="days", nargs=1, default=1, help="Days of unread"), + make_option("-u", "--username", dest="username", nargs=1, help="Specify user id or username"), + make_option("-U", "--userid", dest="userid", nargs=1, help="Specify user id or username"), + ) + + def handle(self, *args, **options): + if options['userid']: + user = User.objects.filter(pk=options['userid']) + elif options['username']: + user = User.objects.get(username__icontains=options['username']) + else: + raise Exception, "Need username or user id." + + feeds = UserSubscription.objects.filter(user=user) + for sub in feeds: + if options['days'] == 0: + sub.mark_feed_read() + else: + sub.mark_read_date = datetime.datetime.now() - datetime.timedelta(days=int(options['days'])) + sub.save() \ No newline at end of file