Spaces:
Sleeping
Sleeping
| from flask import Flask, request, jsonify | |
| from selenium import webdriver | |
| from selenium.webdriver.chrome.options import Options | |
| from selenium.webdriver.common.by import By | |
| from bs4 import BeautifulSoup | |
| import time | |
| app = Flask(__name__) | |
| def get_hidden_code(url): | |
| # Setup Selenium headless Chrome | |
| chrome_options = Options() | |
| chrome_options.add_argument("--headless=new") | |
| chrome_options.add_argument("--disable-gpu") | |
| chrome_options.add_argument("--no-sandbox") | |
| driver = webdriver.Chrome(options=chrome_options) | |
| token_found = [] | |
| try: | |
| driver.get(url) | |
| time.sleep(3) # wait for page load | |
| # Click the Start Challenge button if present | |
| try: | |
| start_button = driver.find_element(By.XPATH, "//button[contains(text(), 'Start Challenge')]") | |
| start_button.click() | |
| time.sleep(3) # wait for challenge to load | |
| except Exception as e: | |
| print("⚠️ Could not click Start Challenge button:", e) | |
| # Get updated HTML after interaction | |
| html = driver.page_source | |
| soup = BeautifulSoup(html, "html.parser") | |
| # Look for hidden elements | |
| for tag in soup.find_all(True): | |
| if tag.has_attr("style") and "display:none" in tag["style"]: | |
| token_found.append(tag.get_text(strip=True)) | |
| # Look for hidden inputs | |
| for hidden in soup.find_all("input", {"type": "hidden"}): | |
| if hidden.get("value"): | |
| token_found.append(hidden["value"]) | |
| # Try regex / text search for "Hidden Code" | |
| if "hidden code" in html.lower(): | |
| start = html.lower().find("hidden code") | |
| token_found.append(html[start:start+100]) | |
| driver.quit() | |
| return list(set(token_found)) or ["No hidden code found"] | |
| except Exception as e: | |
| driver.quit() | |
| return [f"Error: {str(e)}"] | |
| def mission(): | |
| data = request.json | |
| url = data.get("url") | |
| questions = data.get("questions", []) | |
| if not url: | |
| return jsonify({"error": "URL is required"}), 400 | |
| tokens = get_hidden_code(url) | |
| return jsonify({ | |
| "url_received": url, | |
| "questions_received": questions, | |
| "token_found": tokens | |
| }) | |
| if __name__ == "__main__": | |
| app.run(debug=True, host="0.0.0.0", port=5000) | |