summary refs log tree commit diff
path: root/bin/sup.sh
diff options
context:
space:
mode:
authorJune McEnroe <june@causal.agency>2021-02-21 21:42:40 -0500
committerJune McEnroe <june@causal.agency>2021-02-21 21:42:40 -0500
commitf733839fd1cd99dac0123d5657709da4821eb26d (patch)
tree84825e6ca39d0cacb97a011f2c9dcce1f77be4c1 /bin/sup.sh
parentPublish "Unpasswords" (diff)
downloadsrc-f733839fd1cd99dac0123d5657709da4821eb26d.tar.gz
src-f733839fd1cd99dac0123d5657709da4821eb26d.zip
Add Liberapay to sup
Don't actually need to set a password for this one, but I can
automate using the email link to log in.
Diffstat (limited to 'bin/sup.sh')
-rw-r--r--bin/sup.sh22
1 files changed, 22 insertions, 0 deletions
diff --git a/bin/sup.sh b/bin/sup.sh
index b8af9fc1..fb6ad4bf 100644
--- a/bin/sup.sh
+++ b/bin/sup.sh
@@ -77,6 +77,28 @@ discogs() {
 	open 'https://discogs.com/login'
 }
 
+liberapay() {
+	echo 'Fetching CSRF token...'
+	csrf=$(
+		curl -Ss 'https://liberapay.com/sign-in' |
+		sed -n 's/.*name="csrf_token".*value="\([^"]*\)".*/\1/p'
+	)
+	echo 'Submitting form...'
+	curl -Ss -X POST \
+		-b "csrf_token=${csrf}" -F "csrf_token=${csrf}" \
+		-F "log-in.id=${email}" \
+		'https://liberapay.com/sign-in' \
+		>/dev/null
+	echo 'Waiting for email...'
+	url=$(
+		git fetch-email -i -M Trash \
+			-F 'support@liberapay.com' -T "${email}" \
+			-S 'Log in to Liberapay' |
+		grep -m 1 '^https://liberapay\.com/'
+	)
+	open "${url}"
+}
+
 lobsters() {
 	: ${lobstersBase:=https://lobste.rs}
 	: ${lobstersFrom:=nobody@lobste.rs}