Spaces:
Sleeping
Sleeping
#from __future__ import annotations | |
from selenium import webdriver | |
#from typing import Iterable | |
import gradio as gr | |
import re | |
from PIL import Image | |
from io import BytesIO | |
from selenium.common.exceptions import WebDriverException | |
from selenium.webdriver.common.keys import Keys | |
from selenium.webdriver.common.by import By | |
#from selenium_webdriver import WebElement | |
driver_type = 'chromedriver' | |
driver=False | |
def run_script(html: str, style: str): | |
html = html.replace("\n","<br>") | |
#regex = r"^(https?://)" | |
#is_url = re.search(regex, text) | |
is_url=True | |
if is_url: | |
options = webdriver.ChromeOptions() | |
options.add_argument('--headless') | |
options.add_argument('--no-sandbox') | |
options.add_argument('--disable-dev-shm-usage') | |
try: | |
url = f"https://omnibus-txt2img-static.static.hf.space/index.html?format={style}&txt={html}" | |
driver = webdriver.Chrome(options=options) | |
driver.get(url) | |
#html=driver.page_source | |
driver.implicitly_wait(30) | |
driver.set_window_size(1920, 1080) | |
obj = driver.find_element(By.NAME, "in_card") | |
#obj = driver.find_element_by_id("in_html") | |
###################### | |
#inp = driver.find_element("id","input") | |
''' | |
find_element(By.ID, "id") | |
find_element(By.NAME, "name") | |
find_element(By.XPATH, "xpath") | |
find_element(By.LINK_TEXT, "link text") | |
find_element(By.PARTIAL_LINK_TEXT, "partial link text") | |
find_element(By.TAG_NAME, "tag name") | |
find_element(By.CLASS_NAME, "class name") | |
find_element(By.CSS_SELECTOR, "css selector") | |
''' | |
#inp.send_keys("test") | |
###################### | |
cookie_jar = [] | |
#cookie_jar.append(driver.get_cookies()) | |
#print(cookie_jar) | |
screenshot = obj.screenshot('tmp.png') | |
#screenshot = obj.get_screenshot_as_png() | |
except WebDriverException as e: | |
return [Image.new('RGB', (1, 1)), e, None,None] | |
finally: | |
if driver: | |
driver.quit() | |
#return [Image.open(BytesIO(screenshot)), 'operation success.',cookie_jar,html] | |
return [Image.open('tmp.png'), 'operation success.',url,html] | |
else: | |
return [None, 'Please enter a valid URL of a website/host.',None,None] | |
html="""<h1>This is the title</h1> | |
<pre> This is some information | |
bla bla | |
• a bullet | |
• or two | |
</pre>""" | |
sty="""background:cornflowerblue;height:300;width:500;""" | |
with gr.Blocks() as app: | |
with gr.Row(): | |
inp = gr.Textbox(lines=8,max_lines=50,value=html) | |
style = gr.Textbox(lines=8,max_lines=50,value=sty) | |
btn= gr.Button() | |
with gr.Row(): | |
with gr.Column(): | |
outim = gr.Image() | |
with gr.Column(): | |
outp = gr.HTML() | |
cook = gr.Textbox() | |
html=gr.Textbox() | |
btn.click(run_script,[inp,style],[outim,outp,cook,html]) | |
app.launch() |