mirror of
https://github.com/samuelclay/NewsBlur.git
synced 2025-04-13 09:42:01 +00:00
35 lines
1.4 KiB
Python
35 lines
1.4 KiB
Python
from django.core.management.base import BaseCommand
|
|
|
|
from apps.rss_feeds.models import Feed
|
|
|
|
|
|
class Command(BaseCommand):
|
|
def add_arguments(self, parser):
|
|
parser.add_argument("-f", "--feed", dest="feed", default=None)
|
|
parser.add_argument("-t", "--title", dest="title", default=None)
|
|
parser.add_argument("-V", "--verbose", dest="verbose", action="store_true")
|
|
parser.add_argument("-D", "--delete", dest="delete", action="store_true")
|
|
|
|
def handle(self, *args, **options):
|
|
if options["title"]:
|
|
feeds = Feed.objects.filter(feed_title__icontains=options["title"])
|
|
elif options["feed"]:
|
|
feeds = Feed.objects.filter(pk=options["feed"])
|
|
else:
|
|
feeds = Feed.objects.all()
|
|
|
|
feeds_count = feeds.count()
|
|
|
|
for i in range(0, feeds_count, 100):
|
|
feeds = Feed.objects.all()[i : i + 100]
|
|
for feed in feeds.iterator():
|
|
feed.count_subscribers(verbose=options["verbose"])
|
|
|
|
if options["delete"]:
|
|
print("# Deleting old feeds...")
|
|
old_feeds = Feed.objects.filter(num_subscribers=0)
|
|
for feed in old_feeds:
|
|
feed.count_subscribers(verbose=True)
|
|
if feed.num_subscribers == 0:
|
|
print((" ---> Deleting: [%s] %s" % (feed.pk, feed)))
|
|
feed.delete()
|