pull down to refresh

Thanks a lot and I appreciate the feedback
I noticed and got ready to post part 3 later on. But since I like your reply, how about you help critique it here before I post it
import tweepy import nostr_client import requests # Twitter API credentials twitter_api_key = "YOUR_API_KEY" twitter_api_secret_key = "YOUR_API_SECRET_KEY" twitter_access_token = "YOUR_ACCESS_TOKEN" twitter_access_token_secret = "YOUR_ACCESS_TOKEN_SECRET" # Nostr Wallet credentials nwc_public_key = "YOUR_NWC_PUBLIC_KEY" nwc_private_key = "YOUR_NWC_PRIVATE_KEY" # Alby credentials alby_url = "(link unavailable)" alby_access_token = "YOUR_ALBY_ACCESS_TOKEN" # Set up Tweepy auth = tweepy.OAuthHandler(twitter_api_key, twitter_api_secret_key) auth.set_access_token(twitter_access_token, twitter_access_token_secret) api = tweepy.API(auth) # Set up Nostr Client nwc_client = nostr_client.Client() nwc_client.connect(nwc_public_key, nwc_private_key) # Set up Alby alby = Alby(alby_url, alby_access_token) def extract_payment_destinations(twitter_username): user = api.get_user(twitter_username) bio = user.description payment_destinations = [] # Extract npub npub_regex = r".*npub[0-9A-Za-z]+" npub_match = re.search(npub_regex, bio) if npub_match: payment_destinations.append(("npub", npub_match.group())) # Extract Alby address alby_regex = r".*[a-zA-Z0-9]{64}" alby_match = re.search(alby_regex, bio) if alby_match: payment_destinations.append(("alby", alby_match.group())) # Extract LNURL lnurl_regex = r".*https://[0-9A-Za-z]+\.lnurl\.io/" lnurl_match = re.search(lnurl_regex, bio) if lnurl_match: payment_destinations.append(("lnurl", lnurl_match.group())) # Extract BOLT12 static address bolt12_regex = r".*lnbc[0-9A-Za-z]+" bolt12_match = re.search(bolt12_regex, bio) if bolt12_match: payment_destinations.append(("bolt12", bolt12_match.group())) return payment_destinations def send_payment(payment_destination): try: if payment_destination[0] == "npub": # Send payment to npub using NWC event = nwc_client.create_event(21, payment_destination[1]) nwc_client.send_event(event) elif payment_destination[0] == "alby": # Send payment to Alby address using Alby API url = f"(link unavailable)" headers = {"Authorization": f"Bearer {alby_access_token}"} data = {"amount": 21, "destination": payment_destination[1]} response = requests.post(url, headers=headers, json=data) if response.status_code != 200: raise Exception(f"Alby API error: {response.text}") elif payment_destination[0] == "lnurl": # Send payment to LNURL using NWC nwc_client.send_payment(payment_destination[1], 21) elif payment_destination[0] == "bolt12": # Send payment to BOLT12 static address using NWC nwc_client.send_payment(payment_destination[1], 21) except Exception as e: print(f"Error sending payment: {e}") def main(): twitter_username = "twitter_username" payment_destinations = extract_payment_destinations(twitter_username) for destination in payment_destinations: send_payment(destination) if __name__ == "__main__": main()
Unfortunately, I think this is actually maybe slightly further from correct.
  • The nostr code is still not real or functional.
  • The alby code definitely still won't work (and there's no such thing as an "alby address")
  • Your parsing of lnurls still doesn't have a valid regex
  • Bolt 12 parsing and payments are incorrect here too.
In general, none of these payment methods will work as coded and most of the address extraction doesn't look right. I'm not confident that AI tools will give you functional code for this problem tbh. You may want to put in the extra effort to build this manually if you want something working.
reply