Omnibus's picture
Create app.py
550d985
raw
history blame
No virus
3.1 kB
#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()