lib.itmens/users/management/commands/refresh_mastodon.py
2023-01-11 19:13:02 -05:00

30 lines
1,004 B
Python

from django.core.management.base import BaseCommand
from users.models import User
from datetime import timedelta
from django.utils import timezone
from tqdm import tqdm
class Command(BaseCommand):
help = "Refresh Mastodon data for all users if not updated in last 24h"
def handle(self, *args, **options):
count = 0
for user in tqdm(
User.objects.filter(
mastodon_last_refresh__lt=timezone.now() - timedelta(hours=24),
is_active=True,
)
):
if user.mastodon_token or user.mastodon_refresh_token:
tqdm.write(f"Refreshing {user}")
if user.refresh_mastodon_data():
tqdm.write(f"Refreshed {user}")
count += 1
else:
tqdm.write(f"Refresh failed for {user}")
user.save()
else:
tqdm.write(f"Missing token for {user}")
print(f"{count} users updated")