File size: 3,402 Bytes
550d985
 
 
 
33af16d
550d985
 
 
 
 
 
 
 
 
 
a85e152
33af16d
550d985
 
 
 
 
 
 
 
 
 
 
f6d8594
 
550d985
 
 
 
a85e152
e0d8633
dfc3565
28faf6a
550d985
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
33af16d
550d985
 
 
 
 
 
 
 
33af16d
550d985
 
 
 
c809540
550d985
 
 
c809540
550d985
c809540
550d985
 
 
a85e152
c809540
1d5c784
c809540
a85e152
 
550d985
 
 
 
 
 
33af16d
 
a85e152
550d985
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
#from __future__ import annotations
from selenium import webdriver

import gradio as gr
import uuid
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,height,width):
    uid=uuid.uuid4()
    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 = "https://gab.ai/c/65af72173a6a44d9799e202e"
            driver = webdriver.Chrome(options=options)
            driver.get(url)
            #html=driver.page_source
            driver.implicitly_wait(30)
            driver.set_window_size(int(width), int(height))
            obj = driver.find_element(By.CLASS_NAME, "main")            
            #obj = driver.find_element(By.ID, "app-container")            
            #obj = driver.find_element(By.ID, "conversation-feed")            
            #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(f'{uid}-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(f'{uid}-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>
This is some information
bla bla 
• a bullet
• or two
"""

sty="""height:500;width:1000;"""

with gr.Blocks() as app:
    with gr.Row():
        inp = gr.Textbox(label="URL",lines=1,value=html)
        with gr.Column():
            style = gr.Textbox(label="CSS")
            with gr.Row():
                height=gr.Number(label="Height", value=4096)
                width=gr.Number(label="width",value=512)
    btn= gr.Button()
    with gr.Row():
        with gr.Column():
            outim = gr.Image()
        with gr.Column():
            outp = gr.HTML()
            cook = gr.Textbox(label="URL")
            html=gr.Textbox(visible=False)
    btn.click(run_script,[inp,style,height,width],[outim,outp,cook,html])
app.launch()