From a22528a3b5d2e5b11e433a73da2d2b4b0807afb6 Mon Sep 17 00:00:00 2001 From: Rohan Kumar Date: Sat, 24 Dec 2022 08:26:31 -0800 Subject: [PATCH] Fix: fetch webmention json only once Hugo parallelization means the webmention json may be fetched multiple times, which is excessive. --- .gitignore | 1 + Makefile | 3 +-- data/.webmentions-will-go-here | 0 layouts/partials/webmentions.html | 8 +------- scripts/get-token.sh | 7 +++---- 5 files changed, 6 insertions(+), 13 deletions(-) create mode 100644 data/.webmentions-will-go-here diff --git a/.gitignore b/.gitignore index b923906..6d9e4b6 100644 --- a/.gitignore +++ b/.gitignore @@ -19,3 +19,4 @@ public.eac styles/ .vale.ini .webmentiond-token +data/*.json diff --git a/Makefile b/Makefile index 3a4c5b1..3cb4a17 100644 --- a/Makefile +++ b/Makefile @@ -26,7 +26,6 @@ csv/webrings.csv: hugo: csv/webrings.csv $(SRCFILES) sh scripts/get-token.sh hugo -b $(HUGO_BASEURL) $(HUGO_FLAGS) -d $(OUTPUT_DIR) - rm .webmentiond-token mv $(OUTPUT_DIR)/about/_index.gmi $(OUTPUT_DIR)/about/index.gmi # .hintrc-local for linting local files @@ -39,7 +38,7 @@ hugo: csv/webrings.csv $(SRCFILES) .PHONY: clean clean: - rm -rf $(OUTPUT_DIR) .lighthouseci lighthouse-reports mentions.json + rm -rf $(OUTPUT_DIR) .lighthouseci lighthouse-reports mentions.json data/webmentions.json .PHONY: lint-css lint-css: $(CSS_DIR)/*.css diff --git a/data/.webmentions-will-go-here b/data/.webmentions-will-go-here new file mode 100644 index 0000000..e69de29 diff --git a/layouts/partials/webmentions.html b/layouts/partials/webmentions.html index c2e05d1..f7ac339 100644 --- a/layouts/partials/webmentions.html +++ b/layouts/partials/webmentions.html @@ -7,13 +7,7 @@

This site supports Webmentions, a backlink-based alternative to traditional comment forms.

{{ partial "webmention-form.html" . }} {{- /* Fetch all webmentions with bearer token */ -}} - {{ $bearer_token := "" }} - {{- with readFile ".webmentiond-token" -}} - {{- $auth := printf "Bearer %s" . -}} - {{- $bearer_token = dict "Authorization" $auth -}} - {{- end -}} - {{- $mentionsURL := "https://seirdy.one/webmentions/manage/mentions?limit=9999&status=approved" -}} - {{- $allMentions := (getJSON $mentionsURL $bearer_token).items -}} +{{- $allMentions := (index .Site.Data "webmentions").items -}} {{- /* Filter webmentions to just the ones for the current targets */ -}} {{- $canonicalRelPermalink := .RelPermalink | replaceRE "^/~seirdy/" "/" -}} {{- $target := printf "%s%s" .Site.Params.CanonicalBaseURL $canonicalRelPermalink -}} diff --git a/scripts/get-token.sh b/scripts/get-token.sh index ab06162..91fcaca 100644 --- a/scripts/get-token.sh +++ b/scripts/get-token.sh @@ -18,9 +18,7 @@ key="$(_key)" set -u # just a lil curl wrapper I use on seirdy.one -ccurl() { - curl --proto "=https" --proto-default https --tlsv1.3 --cert-status --compressed $* -} +alias ccurl='curl --proto "=https" --proto-default https --tlsv1.3 --cert-status --compressed' _token() { ccurl -sX POST https://seirdy.one/webmentions/authenticate/access-key -d "key=$key" @@ -29,4 +27,5 @@ _token() { token="$(_token)" set +u -printf '%s' "$token" >.webmentiond-token +ccurl -H "Authorization: Bearer $token" 'https://seirdy.one/webmentions/manage/mentions?limit=9999&status=approved' >data/webmentions.json +# printf '%s' "$token" >.webmentiond-token