From 71755183c0b844a91d69209d1d8d392ce2e95230 Mon Sep 17 00:00:00 2001 From: Your Name Date: Wed, 15 Dec 2021 12:54:24 -0500 Subject: [PATCH] manual sync mastodon follow info --- users/templates/users/data.html | 22 ++++++++++++++++++++++ users/urls.py | 1 + users/views.py | 12 ++++++++++-- 3 files changed, 33 insertions(+), 2 deletions(-) diff --git a/users/templates/users/data.html b/users/templates/users/data.html index 100dfaed..28ac7264 100644 --- a/users/templates/users/data.html +++ b/users/templates/users/data.html @@ -160,6 +160,28 @@ + +
+
+
+
{% trans 'Mastodon/Pleroma社交关系数据' %}
+
+
+ {% csrf_token %} + 上次更新时间 {{ user.mastodon_last_refresh }} +
+ 为了正确展示短评和评论,NeoDB会缓存你的关注、屏蔽和静音列表。如果你刚刚更新过帐户的上锁状态、增减过关注、静音或屏蔽,希望立即生效,可以点击这里立刻更新;这类信息也会每天自动同步。 +
+
+ +
+
+
+
diff --git a/users/urls.py b/users/urls.py index f8c8c999..638b148f 100644 --- a/users/urls.py +++ b/users/urls.py @@ -9,6 +9,7 @@ urlpatterns = [ path('data/', data, name='data'), path('data/export_reviews', export_reviews, name='export_reviews'), path('data/export_marks', export_marks, name='export_marks'), + path('data/sync_mastodon', sync_mastodon, name='sync_mastodon'), path('preferences/', preferences, name='preferences'), path('logout/', logout, name='logout'), path('delete/', delete, name='delete'), diff --git a/users/views.py b/users/views.py index e1a748c4..297d0420 100644 --- a/users/views.py +++ b/users/views.py @@ -838,8 +838,9 @@ def manage_report(request): # Utils ######################################## -def refresh_mastodon_data_task(user, token): - user.mastodon_token = token +def refresh_mastodon_data_task(user, token=None): + if token: + user.mastodon_token = token if user.refresh_mastodon_data(): user.save() print(f"{user} mastodon data refreshed") @@ -901,3 +902,10 @@ def export_marks(request): response = HttpResponse(fh.read(), content_type="application/vnd.ms-excel") response['Content-Disposition'] = 'attachment;filename="marks.xlsx"' return response + + +@login_required +def sync_mastodon(request): + if request.method == 'POST': + django_rq.get_queue('mastodon').enqueue(refresh_mastodon_data_task, request.user) + return redirect(reverse("users:data"))