import requests
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.firefox.service import Service
from selenium.webdriver.firefox.options import Options
from selenium.webdriver.firefox.firefox_profile import FirefoxProfile
from webdriver_manager.firefox import GeckoDriverManager

base_url = "https://websvc.biocyc.org/"
login_url = base_url + "credentials/login/"
login_info = {
	"email" : "your_email",
	"password" : "your_password"
}

with requests.Session() as session:
	resp = session.post(login_url, data=login_info)
	if resp.status_code == 200:
		firefox_options = Options()
		firefox_options.add_argument("--start-maximized")
		url =  base_url + "/overview-multi-omics-process-upr"
		data = { "orgid" : "ECOLI", "multifile" : "t"}
		files = {  "masterfile" : open("/masterfile/location/masterfile.txt", "rb"), "file1" : open("/file1/location/file1.txt", "rb") , "file2" : open("/file1/location/file1.txt"", "rb") }
		headers = {'Cache-Control' : 'no-cache, no-store, must-revalidate'}
		response = session.post(url, headers=headers, data=data, files=files)
		print (response.status_code)
		print (response)
		if response.status_code == 200:
			print(response.text)
			omicsurl = "https://" + response.text
			driver = webdriver.Firefox(service=Service(GeckoDriverManager().install()), options=firefox_options)
			driver.get(base_url)
			for cookie in session.cookies:
				if cookie.name == "PTools-session" or cookie.name == "userIdentifier" or cookie.name == "recentOrgID0":
					item = {
						'name': cookie.name,
						'value': cookie.value,
						'domain': cookie.domain,
						'path': cookie.path,
						'expiry': cookie.expires,
						'secure': cookie.secure
					}
					driver.add_cookie(item)
			driver.refresh()
			
			print(response.text)
			driver.get(omicsurl)
			input()
			driver.quit()
		else:
			print (f"failed to render, status code: {response.status_code}")