zulip/zilencer/management/commands/render_old_messages.py

27 lines
887 B
Python

from __future__ import absolute_import
from __future__ import print_function
from django.core.management.base import BaseCommand
from zerver.models import Message
import datetime
import time
class Command(BaseCommand):
help = """Render all historical messages that haven't been rendered yet.
Usage: python manage.py render_old_messages"""
def handle(self, *args, **options):
total_rendered = 0
while True:
messages = Message.objects.filter(rendered_content_version=None)[0:100]
if len(messages) == 0:
break
for message in messages:
message.maybe_render_content(None, save=True)
total_rendered += len(messages)
print(datetime.datetime.now(), total_rendered)
# Put in some sleep so this can run safely on low resource machines
time.sleep(0.25)