diff --git a/.github/workflows/mirror.yml b/.github/workflows/mirror.yml index 589c6e05..36aefb0e 100644 --- a/.github/workflows/mirror.yml +++ b/.github/workflows/mirror.yml @@ -3,7 +3,7 @@ name: Mirror to Codeberg on: [push, delete] jobs: - to_gitlab: + to_codeberg: if: github.repository_owner == 'neodb-social' runs-on: ubuntu-latest steps: diff --git a/catalog/views.py b/catalog/views.py index 44d7e01c..1c8345f2 100644 --- a/catalog/views.py +++ b/catalog/views.py @@ -1,7 +1,7 @@ from django.contrib.auth.decorators import login_required from django.core.cache import cache from django.db.models import Count -from django.http import Http404, JsonResponse +from django.http import Http404, HttpResponse, JsonResponse from django.shortcuts import get_object_or_404, redirect, render from django.urls import reverse from django.utils import timezone @@ -44,7 +44,7 @@ def retrieve_redirect(request, item_path, item_uuid): return redirect(f"/{item_path}/{item_uuid}", permanent=True) -@require_http_methods(["GET"]) +@require_http_methods(["GET", "HEAD"]) @xframe_options_exempt def embed(request, item_path, item_uuid): item = Item.get_by_url(item_uuid) @@ -59,6 +59,8 @@ def embed(request, item_path, item_uuid): focus_item = get_object_or_404( Item, uid=get_uuid_or_404(request.GET.get("focus")) ) + if request.method == "HEAD": + return HttpResponse() return render( request, "embed_" + item.class_name + ".html", @@ -81,6 +83,8 @@ def retrieve(request, item_path, item_uuid): return redirect(item.merged_to_item.url) if not skipcheck and item.is_deleted: raise Http404(_("Item no longer exists")) + if request.method == "HEAD": + return HttpResponse() if request.headers.get("Accept", "").endswith("json"): return JsonResponse(item.ap_object) focus_item = None diff --git a/journal/views/profile.py b/journal/views/profile.py index 440d0932..af397c01 100644 --- a/journal/views/profile.py +++ b/journal/views/profile.py @@ -2,6 +2,7 @@ import datetime from urllib.parse import quote_plus from django.contrib.auth.decorators import login_required +from django.http import HttpResponse from django.shortcuts import render from django.views.decorators.http import require_http_methods @@ -17,9 +18,11 @@ from ..forms import * from ..models import * -@require_http_methods(["GET"]) +@require_http_methods(["GET", "HEAD"]) @profile_identity_required def profile(request: AuthedHttpRequest, user_name): + if request.method == "HEAD": + return HttpResponse() target = request.target_identity anonymous = not request.user.is_authenticated if anonymous and (not target.local or not target.anonymous_viewable): diff --git a/neodb-takahe b/neodb-takahe index b783d46e..1f8f9d1e 160000 --- a/neodb-takahe +++ b/neodb-takahe @@ -1 +1 @@ -Subproject commit b783d46e5858e6fc8919a0b022b835a06634314c +Subproject commit 1f8f9d1e73eca349288db0d43708c8e205d1e338