diff options
-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} |