diff options
author | June McEnroe <june@causal.agency> | 2021-02-21 21:42:40 -0500 |
---|---|---|
committer | June McEnroe <june@causal.agency> | 2021-02-21 21:42:40 -0500 |
commit | f733839fd1cd99dac0123d5657709da4821eb26d (patch) | |
tree | 84825e6ca39d0cacb97a011f2c9dcce1f77be4c1 | |
parent | Publish "Unpasswords" (diff) | |
download | src-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.
-rw-r--r-- | bin/man1/sup.1 | 3 | ||||
-rw-r--r-- | bin/sup.sh | 22 |
2 files changed, 24 insertions, 1 deletions
diff --git a/bin/man1/sup.1 b/bin/man1/sup.1 index 10dac5d9..ba4fe3fd 100644 --- a/bin/man1/sup.1 +++ b/bin/man1/sup.1 @@ -1,4 +1,4 @@ -.Dd February 17, 2021 +.Dd February 21, 2021 .Dt SUP 1 .Os . @@ -37,5 +37,6 @@ and The following services are supported: .Cm discogs , .Cm freebsdbugzilla , +.Cm liberapay , .Cm lobsters , .Cm tildenews . 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} |