From 7f6acad5dc9cbcdf9efcfd9246bfd8ae925f1be0 Mon Sep 17 00:00:00 2001 From: Joe Mou Date: Wed, 12 Jun 2024 18:20:08 -0400 Subject: Simplify Nitter - Populate OAuth tokens using justajoedoe. - Use binary cache build of Nitter. --- hostnix/elmo/privacy-frontends.nix | 42 ++++---------------------------------- 1 file changed, 4 insertions(+), 38 deletions(-) (limited to 'hostnix') diff --git a/hostnix/elmo/privacy-frontends.nix b/hostnix/elmo/privacy-frontends.nix index 3838e19..ecaf8c8 100644 --- a/hostnix/elmo/privacy-frontends.nix +++ b/hostnix/elmo/privacy-frontends.nix @@ -28,46 +28,12 @@ "d /var/secrets/nitter 0750 root wheel" ]; - systemd.services.nitter-refresh-guest-account-token = { - serviceConfig = { - Type = "oneshot"; - }; - path = [ pkgs.curl pkgs.jq ]; - # Lightly edited from https://github.com/zedeus/nitter/wiki/Guest-Account-Branch-Deployment - script = '' - set -e - - guest_token=$(curl -s -XPOST https://api.twitter.com/1.1/guest/activate.json -H 'Authorization: Bearer AAAAAAAAAAAAAAAAAAAAAFXzAwAAAAAAMHCxpeSDG1gLNLghVe8d74hl6k4%3DRUMF4xAQLsbeBhTSRrCiQpJtxoGWeyHrDb5te2jpGskWDFW82F' | jq -r '.guest_token') - - flow_token=$(curl -s -XPOST 'https://api.twitter.com/1.1/onboarding/task.json?flow_name=welcome' \ - -H 'Authorization: Bearer AAAAAAAAAAAAAAAAAAAAAFXzAwAAAAAAMHCxpeSDG1gLNLghVe8d74hl6k4%3DRUMF4xAQLsbeBhTSRrCiQpJtxoGWeyHrDb5te2jpGskWDFW82F' \ - -H 'Content-Type: application/json' \ - -H "User-Agent: TwitterAndroid/10.10.0" \ - -H "X-Guest-Token: $guest_token" \ - -d '{"flow_token":null,"input_flow_data":{"flow_context":{"start_location":{"location":"splash_screen"}}}}' | jq -r .flow_token) - - umask 077 - exec > /var/secrets/nitter/guest-accounts.jsonl - curl -s -XPOST 'https://api.twitter.com/1.1/onboarding/task.json' \ - -H 'Authorization: Bearer AAAAAAAAAAAAAAAAAAAAAFXzAwAAAAAAMHCxpeSDG1gLNLghVe8d74hl6k4%3DRUMF4xAQLsbeBhTSRrCiQpJtxoGWeyHrDb5te2jpGskWDFW82F' \ - -H 'Content-Type: application/json' \ - -H "User-Agent: TwitterAndroid/10.10.0" \ - -H "X-Guest-Token: $guest_token" \ - -d "{\"flow_token\":\"$flow_token\",\"subtask_inputs\":[{\"open_link\":{\"link\":\"next_link\"},\"subtask_id\":\"NextTaskOpenLink\"}]}" | jq -c -r '.subtasks[0]|if(.open_account) then {oauth_token: .open_account.oauth_token, oauth_token_secret: .open_account.oauth_token_secret} else empty end' - ''; - }; - services.nitter = { enable = true; - # Enable stack traces per https://github.com/zedeus/nitter/issues/541#issuecomment-1036031286 - package = pkgs.nitter.overrideAttrs (old: { - nimFlags = old.nimFlags ++ [ - "--excessiveStackTrace:on" - "--stackTrace:on" - "--lineTrace:on" - "--lineDir:on" - ]; - }); + # This must be populated manually as per + # https://github.com/zedeus/nitter/wiki/Guest-Account-Branch-Deployment + # Alternatively it can use logged in account tokens with + # https://github.com/PrivacyDevel/nitter/blob/master/twitter_oauth.sh guestAccounts = "/var/secrets/nitter/guest-accounts.jsonl"; server = { port = 7873; -- cgit v1.3.1