from flask import Flask, request, jsonify import requests from bs4 import BeautifulSoup import json app = Flask(__name__) # Step 1: Fetch the authenticity_token and commitOid from the GitHub edit page def fetch_authenticity_token_and_commit_oid(): url = "https://github.com/omarnuwrar/api/edit/main/user.json" headers = { "cookie": "_octo=GH1.1.1509769180.1721774314; _device_id=0038e28d4f7d4f9baf8f76b6b9fb8980; _gh_sess=XxMNHmqq58kaNJpj3HKllufdyrUNNjxg3%2FW7rJNFwdwO%2FHbrcT2QcSEdzfhBTWdu3PrkDAVy6vs46R6I5kEENdJ%2Bhixu1gb5HiLv1uKh4lKCiwbG16TlJfbkGXUhvou9zTc9Bszn%2F4HOPD0%2FlG%2BauN1hu2MYcajmfMV%2Fb2R%2FvM8tABljOethGPx5CzrGE1b8EgZxMeOP5wNBrZH4KHPIAD6IAb2z7j%2FJaXHAImK9tmU5CIb5Q9fi9FH6l%2BjWdmSYXekDVHzrKK8mXmO2%2B8N%2BaG0r%2BqoBACKdpj3rbC9x1%2BSKMZjSmu0uNrCmJAPymukisTHFRVtuMikNtEZtVx8QYH%2F9j4hDPs6fOE7wAegPTG7xYeBM1QCNJgiHHGHzoawBFbs0DtEcZwIvRQgVCXYpE0YIUbp6LCEoVxxQeSiTYrBZcoXZ%2F%2BFvw7J7mZSG5pBfo%2FuZ6xQSblzlWpzg--SXX57IvnIMkLdZCr--s5FjBmuKtrEf71mhHx1g2g%3D%3D; saved_user_sessions=155741452%3Avhq2fotRhM6ixLZuU8plCTagdBxOI9UGuu5XwPf569UWHPOg; user_session=vhq2fotRhM6ixLZuU8plCTagdBxOI9UGuu5XwPf569UWHPOg; __Host-user_session_same_site=vhq2fotRhM6ixLZuU8plCTagdBxOI9UGuu5XwPf569UWHPOg; logged_in=yes; dotcom_user=omarnuwrar; color_mode=%7B%22color_mode%22%3A%22auto%22%2C%22light_theme%22%3A%7B%22name%22%3A%22light%22%2C%22color_mode%22%3A%22light%22%7D%2C%22dark_theme%22%3A%7B%22name%22%3A%22dark%22%2C%22color_mode%22%3A%22dark%22%7D%7D; cpu_bucket=lg; preferred_color_mode=light; tz=Africa%2FTripoli", "if-none-match": 'W/"2ff86bd1792cfee5ed79ee070b3b46de"', "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36", "x-github-target": "dotcom", "x-react-router": "json", "x-requested-with": "XMLHttpRequest", } response = requests.get(url, headers=headers) if response.status_code == 200: soup = BeautifulSoup(response.text, 'html.parser') script_tag = soup.find("script", {"type": "application/json", "data-target": "react-app.embeddedData"}) if script_tag: try: json_data = json.loads(script_tag.string.strip()) authenticity_token = json_data["payload"]["csrf_tokens"]["/omarnuwrar/api/tree-save/main/user.json"]["post"] commit_oid = json_data["payload"]["webCommitInfo"]["commitOid"] return authenticity_token, commit_oid except (KeyError, json.JSONDecodeError) as e: print(f"Error: Failed to extract data. Details: {str(e)}") return None, None else: print("Error: Could not find the required