diff --git a/participation/views.py b/participation/views.py index c084096..ff789ee 100644 --- a/participation/views.py +++ b/participation/views.py @@ -1893,6 +1893,10 @@ class GSheetNotificationsView(View): if request.headers['X-Goog-Channel-ID'] != expected_channel_id: raise ValueError(f"Invalid channel ID: {request.headers['X-Goog-Channel-ID']}") + if request.headers['X-Goog-Resource-State'] != 'update' \ + or 'content' not in request.headers['X-Goog-Changed'].split(','): + return HttpResponse(status=204) + # Run the parsing in dedicated executors since it takes time executor = ThreadPoolExecutor() async for pool in tournament.pools.prefetch_related('participations', 'passages__notes', 'juries').all():