From f5903b2880e97719b5391b6267980b29ca0b4768 Mon Sep 17 00:00:00 2001 From: doubaniux Date: Thu, 27 Aug 2020 13:37:27 +0800 Subject: [PATCH] log mastodon failed request result | close #45 --- books/views.py | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/books/views.py b/books/views.py index 63317552..896e5ca2 100644 --- a/books/views.py +++ b/books/views.py @@ -1,3 +1,4 @@ +import logging from django.shortcuts import render, get_object_or_404, redirect, reverse from django.contrib.auth.decorators import login_required from django.utils.translation import gettext_lazy as _ @@ -19,6 +20,10 @@ from .forms import BookMarkStatusTranslator from boofilsic.settings import MASTODON_TAGS + +mastodon_logger = logging.getLogger("django.mastodon") + + # how many marks showed on the detail page MARK_NUMBER = 5 # how many marks at the mark page @@ -281,7 +286,10 @@ def create_update_mark(request): tags = MASTODON_TAGS % {'category': '书', 'type': '标记'} content = words + '\n' + url + '\n' + \ form.cleaned_data['text'] + '\n' + tags - post_toot(content, visibility, request.session['oauth_token']) + response = post_toot(content, visibility, request.session['oauth_token']) + if response.status_code != 200: + return HttpResponseServerError("publishing mastodon status failed") + mastodon_logger.error(response.text) else: return HttpResponseBadRequest("invalid form data") @@ -365,7 +373,10 @@ def create_review(request, book_id): tags = MASTODON_TAGS % {'category': '书', 'type': '评论'} content = words + '\n' + url + \ '\n' + form.cleaned_data['title'] + '\n' + tags - post_toot(content, visibility, request.session['oauth_token']) + response = post_toot(content, visibility, request.session['oauth_token']) + if response.status_code != 200: + return HttpResponseServerError("publishing mastodon status failed") + mastodon_logger.error(response.text) return redirect(reverse("books:retrieve_review", args=[form.instance.id])) else: return HttpResponseBadRequest() @@ -413,7 +424,10 @@ def update_review(request, id): tags = MASTODON_TAGS % {'category': '书', 'type': '评论'} content = words + '\n' + url + \ '\n' + form.cleaned_data['title'] + '\n' + tags - post_toot(content, visibility, request.session['oauth_token']) + response = post_toot(content, visibility, request.session['oauth_token']) + if response.status_code != 200: + return HttpResponseServerError("publishing mastodon status failed") + mastodon_logger.error(response.text) return redirect(reverse("books:retrieve_review", args=[form.instance.id])) else: return HttpResponseBadRequest()