import pyautogui
import time
import os
import subprocess
import datetime

BURP_JAR = "/headless/burpsuite_community.jar"
CONFIG_FILE = "/app/burp/project_options.json"

def start_burp():
    os.system("rm -rf /tmp/burp*")
    burp_process = subprocess.Popen([
        "java", "-jar", BURP_JAR,
        f"--config-file={CONFIG_FILE}"
    ])
    return burp_process

time.sleep(5)

print("Starting Burp Suite...")
burp_process = start_burp()
end_time = datetime.datetime.now() + datetime.timedelta(days=1)
button = None
proxy_clicked = False
history_clicked = False
sort_clicked = False
setup = False
while True:
    if datetime.datetime.now() > end_time:
        
        setup = False
        print("Burp Suite has been running for 24 hours, restarting...")
        burp_process.terminate()
        time.sleep(1)
        burp_process = start_burp()
        end_time = datetime.datetime.now() + datetime.timedelta(days=1)
        proxy_clicked = False
        history_clicked = False
        sort_clicked = False
    if not setup:
        try:
            button = pyautogui.locateCenterOnScreen("/app/burp/next_button.png", confidence=0.8)
        except:
            pass
        if button:
            print("Clicking on the 'Next' button...")
            pyautogui.click(button)
        button = None
        
        try:
            button = pyautogui.locateCenterOnScreen("/app/burp/start_burp.png", confidence=0.8)
        except:
            pass
        if button:
            print("Clicking on the 'Start Burp' button...")
            pyautogui.click(button)
        button = None
        
        try:   
            button = pyautogui.locateCenterOnScreen("/app/burp/accept.png", confidence=0.8)
        except:
            pass
        if button:
            print("Clicking on the 'Accept' button...")
            pyautogui.click(button)
        button = None
        
        try:
            button = pyautogui.locateCenterOnScreen("/app/burp/proxy.png", confidence=0.8)
        except:
            pass
        if button and not proxy_clicked:
            print("Clicking on the 'Proxy' button...")
            pyautogui.click(button)
            proxy_clicked = True
        button = None
            
        try:
            button = pyautogui.locateCenterOnScreen("/app/burp/http_history.png", confidence=0.8)
        except:
            pass
        if button and not history_clicked:
            print("Clicking on the 'HTTP History' button...")
            pyautogui.click(button)
            history_clicked = True
        button = None
        try:
            button = pyautogui.locateCenterOnScreen("/app/burp/sort.png", confidence=0.99)
        except:
            pass
        if button and not sort_clicked:
            sort_clicked = True
            print("Clicking on the 'Sorting' button...")
            pyautogui.click(button)
            setup = True
        button = None
    else:
        time.sleep(3600)
