From 1fa7330595730a9896dc72b02ff8124cafe7b1e8 Mon Sep 17 00:00:00 2001 From: Mouse Reeve Date: Tue, 23 Mar 2021 13:23:35 -0700 Subject: [PATCH] Management command for rebuilding ALL feeds --- bookwyrm/management/commands/rebuild_feeds.py | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 bookwyrm/management/commands/rebuild_feeds.py diff --git a/bookwyrm/management/commands/rebuild_feeds.py b/bookwyrm/management/commands/rebuild_feeds.py new file mode 100644 index 000000000..ce7ead0f3 --- /dev/null +++ b/bookwyrm/management/commands/rebuild_feeds.py @@ -0,0 +1,34 @@ +""" Delete and re-create user feeds """ +from django.core.management.base import BaseCommand +import redis + +from bookwyrm import activitystreams, models, settings + +r = redis.Redis( + host=settings.REDIS_ACTIVITY_HOST, port=settings.REDIS_ACTIVITY_PORT, db=0 +) + +def erase_feeds(): + """ throw the whole redis away """ + r.flushall() + +def create_feeds(): + """ build all the fields for all the users """ + users = models.User.objects.filter( + local=True, + is_active=True, + ) + for user in users: + for stream in activitystreams.streams.values(): + stream.populate_stream(user) + + +class Command(BaseCommand): + """ start all over with user feeds """ + + help = "Delete and re-create all the user feeds" + # pylint: disable=no-self-use,unused-argument + def handle(self, *args, **options): + """ run feed builder """ + erase_feeds() + create_feeds()