Some checks failed
Python Linting / Run Ruff (push) Has been cancelled
Python Linting / Run Pylint (push) Has been cancelled
Full Comfy CI Workflow Runs / test-stable (12.1, , linux, 3.10, [self-hosted Linux], stable) (push) Has been cancelled
Full Comfy CI Workflow Runs / test-stable (12.1, , linux, 3.11, [self-hosted Linux], stable) (push) Has been cancelled
Full Comfy CI Workflow Runs / test-stable (12.1, , linux, 3.12, [self-hosted Linux], stable) (push) Has been cancelled
Full Comfy CI Workflow Runs / test-unix-nightly (12.1, , linux, 3.11, [self-hosted Linux], nightly) (push) Has been cancelled
Execution Tests / test (macos-latest) (push) Has been cancelled
Execution Tests / test (ubuntu-latest) (push) Has been cancelled
Execution Tests / test (windows-latest) (push) Has been cancelled
Test server launches without errors / test (push) Has been cancelled
Unit Tests / test (macos-latest) (push) Has been cancelled
Unit Tests / test (ubuntu-latest) (push) Has been cancelled
Unit Tests / test (windows-2022) (push) Has been cancelled
Includes 30 custom nodes committed directly, 7 Civitai-exclusive loras stored via Git LFS, and a setup script that installs all dependencies and downloads HuggingFace-hosted models on vast.ai. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
57 lines
1.9 KiB
Python
57 lines
1.9 KiB
Python
import os
|
|
from aiohttp import web
|
|
|
|
THIS_DIR = os.path.dirname(os.path.abspath(__file__))
|
|
DIR_WEB = os.path.abspath(f'{THIS_DIR}/../../web/')
|
|
|
|
|
|
def get_param(request, param, default=None):
|
|
"""Gets a param from a request."""
|
|
return request.rel_url.query[param] if param in request.rel_url.query else default
|
|
|
|
|
|
def is_param_falsy(request, param):
|
|
"""Determines if a param is explicitly 0 or false."""
|
|
val = get_param(request, param)
|
|
return val is not None and (val == "0" or val.upper() == "FALSE")
|
|
|
|
|
|
def is_param_truthy(request, param):
|
|
"""Determines if a param is explicitly 0 or false."""
|
|
val = get_param(request, param)
|
|
return val is not None and not is_param_falsy(request, param)
|
|
|
|
|
|
def set_default_page_resources(path, routes):
|
|
""" Sets up routes for handling static files under a path."""
|
|
|
|
@routes.get(f'/rgthree/{path}/{{file}}')
|
|
async def get_resource(request):
|
|
""" Returns a resource file. """
|
|
return web.FileResponse(os.path.join(DIR_WEB, path, request.match_info['file']))
|
|
|
|
@routes.get(f'/rgthree/{path}/{{subdir}}/{{file}}')
|
|
async def get_resource_subdir(request):
|
|
""" Returns a resource file. """
|
|
return web.FileResponse(
|
|
os.path.join(DIR_WEB, path, request.match_info['subdir'], request.match_info['file']))
|
|
|
|
|
|
def set_default_page_routes(path, routes):
|
|
""" Sets default path handling for a hosted rgthree page. """
|
|
|
|
@routes.get(f'/rgthree/{path}')
|
|
async def get_path_redir(request):
|
|
""" Redirects to the path adding a trailing slash. """
|
|
raise web.HTTPFound(f'{request.path}/')
|
|
|
|
@routes.get(f'/rgthree/{path}/')
|
|
async def get_path_index(request):
|
|
""" Handles the page's index loading. """
|
|
html = ''
|
|
with open(os.path.join(DIR_WEB, path, 'index.html'), 'r', encoding='UTF-8') as file:
|
|
html = file.read()
|
|
return web.Response(text=html, content_type='text/html')
|
|
|
|
set_default_page_resources(path, routes)
|