from flask import Flask, request
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import Select
import time
import requests
import base64
from anticaptchaofficial.recaptchav2proxyless import *
import os
import sys
import re
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import json

response = requests.get("https://acq.iemoapi.com/getProxyIp?return_type=json&protocol=http&num=1&regions=br")
print(response.text)
python_object = json.loads(response.text)
proxy = f"{python_object['data'][0]["ip"]}:{python_object['data'][0]["port"]}"
print(proxy)

# Inicializa o navegador (neste caso, o Chrome)
options = Options()
options.add_argument('--headless')
options.add_argument('--no-sandbox')
options.add_argument('--disable-dev-shm-usage')
#options.add_argument(f"--proxy-server={proxy}")
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()), options=options)

# Abre a página web desejada
driver.get("https://sistemas1.sefaz.ma.gov.br/sintegra/jsp/consultaSintegra/consultaSintegraFiltro.jsf")

time.sleep(3) # Pause for 1 seconds

radio_btn_por_valor = WebDriverWait(driver, 10).until(
    EC.element_to_be_clickable((By.CSS_SELECTOR, "input[type='radio'][value='2']"))
)
radio_btn_por_valor.click()

time.sleep(1) # Pause for 1 seconds

search_input = driver.find_element(By.ID, "form1:cpfCnpj")
# 2. Escrever o texto no campo de input
#search_input.send_keys(request.args.get('argumento1', ''))
search_input.send_keys("14030974000122")

# Encontre o elemento que você quer deletar
elemento = driver.find_element(By.ID, "g-recaptcha-response") # Exemplo: por ID

# Execute JavaScript para remover o elemento
# Opção 1: Usando element.remove() (mais moderno)
driver.execute_script("arguments[0].remove();", elemento)

#JavaScript to create a new div element and append it to the body
js_script = """
// 1. Create the input element
var input = document.createElement("input");

// 2. Set attributes and properties
input.type = "text"; // Sets the type to text
input.name = "g-recaptcha-response"; // Sets the 'name' attribute for form submission
input.id = "g-recaptcha-response";

// 3. Find the container element
var container = document.getElementById("form1");

// 4. Append the new input to the container in the DOM
container.appendChild(input);
"""

# Execute the script
driver.execute_script(js_script)

solver = recaptchaV2Proxyless()
solver.set_verbose(1)
solver.set_key("09bc5c186912bc03bef76a434eb0a97b")
solver.set_website_url("https://sistemas1.sefaz.ma.gov.br/sintegra/jsp/consultaSintegra/consultaSintegraFiltro.jsf")
solver.set_website_key("6LfKD1MUAAAAAOJxT7nt0qoTMOyII0tcs2CbYsmc")
#set optional custom parameter which Google made for their search page Recaptcha v2
#solver.set_data_s('"data-s" token from Google Search results "protection"')

# Specify softId to earn 10% commission with your app.
# Get your softId here: https://anti-captcha.com/clients/tools/devcenter
solver.set_soft_id(0)

g_response = solver.solve_and_return_solution()
if g_response != 0:
    print("g-response: "+g_response)
else:
    print("task finished with error "+solver.error_code)

textarea = driver.find_element(By.NAME, "g-recaptcha-response")
textarea.send_keys(g_response)

search_button = driver.find_element(By.NAME, "form1:j_id27")
search_button.click()

time.sleep(3) # Pause for 1 seconds

body_element = driver.find_element(By.TAG_NAME, "body")
body_text = body_element.text
print(body_text)

# fecha o navegador
driver.quit()