2024-01-26 06:49:52 -05:00
|
|
|
from ..errors import MissingRequirementsError
|
2023-10-06 14:52:17 -04:00
|
|
|
|
2024-04-06 10:21:22 -04:00
|
|
|
try:
|
|
|
|
from .server.app import app
|
|
|
|
from .server.website import Website
|
|
|
|
from .server.backend import Backend_Api
|
|
|
|
import_error = None
|
|
|
|
except ImportError as e:
|
|
|
|
import_error = e
|
|
|
|
|
2024-01-26 06:49:52 -05:00
|
|
|
def run_gui(host: str = '0.0.0.0', port: int = 8080, debug: bool = False) -> None:
|
2024-04-06 10:21:22 -04:00
|
|
|
if import_error is not None:
|
2024-04-07 04:36:13 -04:00
|
|
|
raise MissingRequirementsError(f'Install "gui" requirements | pip install -U g4f[gui]\n{import_error}')
|
2024-03-17 05:51:08 -04:00
|
|
|
|
2024-02-10 19:59:57 -05:00
|
|
|
if debug:
|
2024-04-06 10:21:22 -04:00
|
|
|
from g4f import debug
|
|
|
|
debug.logging = True
|
2023-10-06 14:52:17 -04:00
|
|
|
config = {
|
|
|
|
'host' : host,
|
|
|
|
'port' : port,
|
|
|
|
'debug': debug
|
|
|
|
}
|
2024-04-07 04:36:13 -04:00
|
|
|
|
2023-10-06 14:52:17 -04:00
|
|
|
site = Website(app)
|
|
|
|
for route in site.routes:
|
|
|
|
app.add_url_rule(
|
|
|
|
route,
|
|
|
|
view_func = site.routes[route]['function'],
|
|
|
|
methods = site.routes[route]['methods'],
|
|
|
|
)
|
2024-04-07 04:36:13 -04:00
|
|
|
|
2023-10-06 14:52:17 -04:00
|
|
|
backend_api = Backend_Api(app)
|
|
|
|
for route in backend_api.routes:
|
|
|
|
app.add_url_rule(
|
|
|
|
route,
|
|
|
|
view_func = backend_api.routes[route]['function'],
|
|
|
|
methods = backend_api.routes[route]['methods'],
|
|
|
|
)
|
2024-04-07 04:36:13 -04:00
|
|
|
|
2023-10-06 14:52:17 -04:00
|
|
|
print(f"Running on port {config['port']}")
|
|
|
|
app.run(**config)
|
2023-10-11 21:35:11 -04:00
|
|
|
print(f"Closing port {config['port']}")
|