Agung1453 commited on
Commit
dc1eb7c
Β·
verified Β·
1 Parent(s): 0550548

Upload app.py

Browse files
Files changed (1) hide show
  1. app.py +15 -13
app.py CHANGED
@@ -33,12 +33,12 @@ def start_vnc():
33
  vnc_host_port = extract_host_port(vnc_url)
34
  return (
35
  f"<iframe src='{vnc_url}' width='100%' height='500px' style='border:none;'></iframe>",
36
- f"βœ… VNC Started β€” Use RealVNC: {vnc_host_port}"
37
  )
38
  else:
39
  return (
40
  f"<iframe src='{vnc_url}' width='100%' height='500px' style='border:none;'></iframe>",
41
- f"⚠️ VNC Already Running β€” Use RealVNC: {vnc_host_port}"
42
  )
43
 
44
  def stop_vnc():
@@ -71,11 +71,12 @@ def buka_browser():
71
  if not desktop:
72
  return "<p style='color:red;'>❌ VNC belum berjalan</p>"
73
  try:
74
- desktop.write("firefox")
 
75
  desktop.press("enter")
76
- return "<p style='color:green;'>βœ… Browser dibuka</p>"
77
  except Exception as ex:
78
- return f"<p style='color:red;'>Error: {ex}</p>"
79
 
80
  def tutup_tab():
81
  if not desktop:
@@ -104,19 +105,15 @@ with gr.Blocks() as demo:
104
  gr.HTML("<h1 style='text-align:center'>E2B VNC Sandbox</h1>")
105
 
106
  iframe_display = gr.HTML("<p style='color:gray;'>VNC belum dimulai</p>")
107
- status_display = gr.Textbox(value="Status: Idle", label="Status / VNC Viewer Address")
108
 
109
  with gr.Row():
110
  start_btn = gr.Button("β–Ά Start VNC")
111
  stop_btn = gr.Button("⏹ Stop VNC")
112
 
113
- teks_input = gr.Textbox(placeholder="Ketik teks untuk VNC", label="VNC Keyboard")
114
- kirim_btn = gr.Button("πŸ“€ Masuk")
115
- kirim_status = gr.HTML("")
116
-
117
  gr.HTML("<h2>🌐 Kontrol Browser</h2>")
118
  with gr.Row():
119
- browser_btn = gr.Button("🌎 Buka Browser")
120
  tutup_btn = gr.Button("❌ Tutup Tab Browser")
121
  browser_status = gr.HTML("")
122
 
@@ -128,9 +125,14 @@ with gr.Blocks() as demo:
128
  openlink_btn = gr.Button("πŸ”— Cari & Klik [OPEN LINK]")
129
  find_status = gr.HTML("")
130
 
 
 
 
 
 
131
  # === koneksi tombol ===
132
- start_btn.click(start_vnc, outputs=[iframe_display, status_display])
133
- stop_btn.click(stop_vnc, outputs=[iframe_display, status_display])
134
  kirim_btn.click(kirim_teks, inputs=teks_input, outputs=kirim_status)
135
 
136
  browser_btn.click(buka_browser, outputs=browser_status)
 
33
  vnc_host_port = extract_host_port(vnc_url)
34
  return (
35
  f"<iframe src='{vnc_url}' width='100%' height='500px' style='border:none;'></iframe>",
36
+ "βœ… VNC Started"
37
  )
38
  else:
39
  return (
40
  f"<iframe src='{vnc_url}' width='100%' height='500px' style='border:none;'></iframe>",
41
+ "⚠️ VNC Already Running"
42
  )
43
 
44
  def stop_vnc():
 
71
  if not desktop:
72
  return "<p style='color:red;'>❌ VNC belum berjalan</p>"
73
  try:
74
+ # jalankan firefox di background
75
+ desktop.write("mozilla firefox &")
76
  desktop.press("enter")
77
+ return "<p style='color:green;'>βœ… Firefox dibuka</p>"
78
  except Exception as ex:
79
+ return f"<p style='color:red;'>Error membuka Firefox: {ex}</p>"
80
 
81
  def tutup_tab():
82
  if not desktop:
 
105
  gr.HTML("<h1 style='text-align:center'>E2B VNC Sandbox</h1>")
106
 
107
  iframe_display = gr.HTML("<p style='color:gray;'>VNC belum dimulai</p>")
 
108
 
109
  with gr.Row():
110
  start_btn = gr.Button("β–Ά Start VNC")
111
  stop_btn = gr.Button("⏹ Stop VNC")
112
 
113
+ # === Kontrol Browser dipindah di bawah iframe ===
 
 
 
114
  gr.HTML("<h2>🌐 Kontrol Browser</h2>")
115
  with gr.Row():
116
+ browser_btn = gr.Button("🌎 Buka Browser (Firefox)")
117
  tutup_btn = gr.Button("❌ Tutup Tab Browser")
118
  browser_status = gr.HTML("")
119
 
 
125
  openlink_btn = gr.Button("πŸ”— Cari & Klik [OPEN LINK]")
126
  find_status = gr.HTML("")
127
 
128
+ # === Input teks manual (tetap ada di bawah) ===
129
+ teks_input = gr.Textbox(placeholder="Ketik teks untuk VNC", label="VNC Keyboard")
130
+ kirim_btn = gr.Button("πŸ“€ Masuk")
131
+ kirim_status = gr.HTML("")
132
+
133
  # === koneksi tombol ===
134
+ start_btn.click(start_vnc, outputs=[iframe_display, browser_status])
135
+ stop_btn.click(stop_vnc, outputs=[iframe_display, browser_status])
136
  kirim_btn.click(kirim_teks, inputs=teks_input, outputs=kirim_status)
137
 
138
  browser_btn.click(buka_browser, outputs=browser_status)