import re
from liveview import liveview_handler, send
from django.test import Client
from app.public.liveview_handlers.modal import _inject_liveview_submit_page
@liveview_handler("navigate")
def navigate(consumer, content):
url = content.get("data", {}).get("data_url", "/")
client = Client()
if hasattr(consumer, "scope") and "user" in consumer.scope:
user = consumer.scope["user"]
if user and user.is_authenticated:
client.force_login(user)
ws_session = consumer.scope.get("session")
if ws_session:
session = client.session
for key, value in ws_session.items():
if not key.startswith("_auth_user"):
session[key] = value
session.save()
try:
response = client.get(
url,
follow=True,
HTTP_X_REQUESTED_WITH="XMLHttpRequest",
SERVER_NAME="localhost",
)
if response.status_code == 200:
html_content = response.content.decode("utf-8")
main_match = re.search(r"