lollms-webui/utilities/execution_engines/javascript_execution_engine.py

53 lines
1.4 KiB
Python
Raw Normal View History

2024-02-05 22:50:40 +00:00
"""
project: lollms_webui
file: shell_execution_engine.py
author: ParisNeo
description:
This is a utility for executing python code
"""
from lollms_webui import LOLLMSWebUI
from ascii_colors import get_trace_exception, trace_exception
import time
import subprocess
import json
2024-02-28 00:06:59 +00:00
from lollms.client_session import Client
2024-02-05 22:50:40 +00:00
lollmsElfServer:LOLLMSWebUI = LOLLMSWebUI.get_instance()
def build_javascript_output(code, ifram_name="unnamed"):
"""
This function creates an HTML5 iframe with the given HTML content and iframe name.
Args:
html (str): The HTML content to be displayed in the iframe.
ifram_name (str, optional): The name of the iframe. Defaults to "unnamed".
Returns:
str: The HTML string for the iframe.
"""
# Start the timer.
start_time = time.time()
rendered = "\n".join([
'<div style="width: 100%; margin: 0 auto;">',
f'<iframe id="{ifram_name}" srcdoc="',
2024-02-08 22:28:50 +00:00
'<style>',
'iframe {',
'width: 100%;',
'height: 100%;',
'border: none;',
'}',
'</style>',
2024-02-05 22:50:40 +00:00
'<script>',
code,
'</script>',
'" style="width: 100%; height: 600px; border: none;"></iframe>',
'</div>'
]
)
execution_time = time.time() - start_time
return {"output": rendered, "execution_time": execution_time}
2024-02-28 21:56:34 +00:00
def execute_javascript(code):
2024-02-05 22:50:40 +00:00
return build_javascript_output(code)